npm
npm 简介
npm 全称为:,中文意思是【Node 包管理工具】,它是 Node 内置的包管理工具,安装了 Nodejs 就自动拥有了 npm。
npm 版本
可以通过 查看版本号测试,如果显示 npm 版本号说明安装成功。

初始化包
创建一个空目录,然后在此目录下,执行 npm init,该命令的作用是:将文件夹初。

根据提示,进行包的核心配置:

初始化成功后,会出现一个 package.json,这是包的配置文件,每个包都必须要有 package.json 它是包的说明文件,package.json 内容示例:
{
"name": "npm-test", # 包的名称
"version": "1.0.0", # 包的版本
"description": "npm初始化", # 包的描述
"main": "index.js", # 包的入口文件
"scripts": { # 脚本配置
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "折木", # 作者
"license": "MIT" # 开源证书
}初始化的过程中还有一些注意事项:
提示
搜索包
搜索包的方式有两种:
命令行搜索: 或者
网站搜索:https://www.npmjs.com
安装包
以安装 uniq 这个包为例,安装命令如下:
npm install uniq --save 或 npm i uniq -S
运行之后文件夹下会增加两个资源
- :该文件夹中存放下载好的包。
- :包的锁文件,用来锁定包的版本。
关于 package-lock.json 中的版本限制的说明:
除了^还有以下写法:
- ^:锁定主版本号,接受所有以 1 开头的版本,如:1.0.2 等,但不包括 2.0.0。
- ~:允许安装小版本的更新,但不包括次要版本的更改。~1.0.1 允许 1.0.x。、
- > :允许比指定版本更高的版本,但不包括指定版本本身。>1.0.1 允许 1.0.2、1.1.0、2.0.0 等。
- <:允许比指定版本更低的版本。<1.0.1 允许 1.0.0 及更早的版本
- > =:允许指定版本及更高的版本。>=1.0.1 允许 1.0.1 及其之后的版本。
- <=:允许指定版本及更低的版本。<=1.0.1 允许 1.0.1 及其之前的版本。
- *:允许任何版本,这种情况下最不限制,但也。
- 如果没有任何符号,只写版本号,如 1.0.1,这意味着严格要求安装这个特定版本。
导入包基本流程
当我们编写了如下代码:
let uniq = require("uniq");npm 的引入流程是:
- 在当前文件夹下 node_modules 中寻找同名的文件夹,若有则使用,若没有进入下一步。
- 在上级目录中下的 node_modules 中寻找同名的文件夹,直至找到磁盘根目录。
生成环境、开发环境
,一般是程序员的电脑。
,一般是正式的服务器。
生成依赖、开发依赖
:只有开发环境用到的包,是开发依赖包。
:开发环境、生产环境都要用的,是生产依赖包。
举例理解:
做蛋炒饭需要:、等。
其中:属于开发依赖,只在制作阶段使用。
其中:属于生产依赖,在制作阶段、最终成品都会用到。
思考:如何快速区分一个包是生产依赖,还是开发依赖?
- 帮我们实现【功能效果】的库==> 生产依赖
- 帮我们进行【加工代码】的库==> 开发依赖
| 操作 | 命令 |
|---|---|
| 安装生产依赖 | npm install ??? --save npm install ??? -s |
| 安装开发依赖 | npm install ??? --save-dev npm i ??? -d |
例如:我们编译 less 文件需要下载 less 包,less 就是开发依赖
const less = requestuire("less");
const fs = requestuire("fs");
fs.readFile("styles.less", "utf8", function (err, data) {
if (err) {
return console.error(err);
}
less.render(data, function (e, output) {
fs.writeFile("styles.css", output.css, function (err) {
if (err) {
return console.error(err);
}
console.log("less样式解析完毕");
});
});
});全局安装
使用-g 进行全局安装:
npm i nodemon -g全局安装 nodemon 之后,就有了 nodemon 命令,作用是:。
说明:
- 全局安装的命令不受工作目录位置影响。
- 通过 npm root -g 可以查看全局安装包的位置。
- 通过 npm list -g 查看全局安装了那些包。
- ,通常是命令行工具包,才适合全局安装。
安装全部依赖
通过 npm i 或 npm install 命令 ,可依据 package.json 和 package-lock.json 安装项目依赖。
npm i 或 npm install
若只想安装生产依赖,可以使用 npm install --prod 或 npm i --omit=dev
npm install --prod 或 npm i --omit=dev
注意:
node_modules 文件夹是不会接受版本控制的。
安装指定版本
项目中可能会遇到版本不匹配的情况,有时就需要安装指定版本的包,可以使用如下命令:
npm i 包名@版本号
删除依赖
项目中可能需要删除某些不需要的包,可以使用下面的命令
局部删除 npm remove <对应包名> npm r <对应包名>
全局删除 npm remove <对应包名> -g npm r <对应包名> -g
配置命令别名
通过配置命令别名可以更简单的执行命令,配置 package.json 中的 scripts 属性
{
*********
*********
"scripts": {
"server": "node server.js",
"start": "node index.js",
},
*********
*********
}配置完成之后,可以使用别名执行命令
npm run server
npm run startstart 别名比较特别,使用时可以省略 run
npm start补充说明:
是项目中常用的一个命令,一般用来启动项目。有自动向上级目录查找的特性,跟 requestuire 函数也一样。
对于陌生的项目,我们可以通过查看 属性来参考项目的一些操作。

