包管理工具 npm:
npm:Node Package Manager,Node 包管理器,目前已经不仅仅作为 Node 的包管理工具,也作为前端的包管理工具来管理包。
npm 管理的包是存放在一个名为 registry 的仓库中的,发布一个包时是发布到 registry 上的,安装一个包时也是从 registry 上下载的。
安装 npm:
安装 Node 的过程中就会自动安装 npm 工具。
package.json
:
可以通过 npm init
命令生成配置文件 package.json
,是一个记录着包的名称、版本号、描述、依赖的其他库的信息等的 JSON 对象。
npm init
:创建配置文件时需要填写信息。
npm init -y
:创建配置文件时使用默认信息。
常见的属性有:
- name:包的名称。必填。
- version:包的版本号。必填。
- description:包的描述信息。
- author:作者(项目开源发布时使用)。
- license:开源协议(项目开源发布时使用)。
- private:记录当前包是否是私有的。当属性值为 true 时,npm 是无法发布该包的,这是为了放置私有包被发布出去的方式。
- main:指定包的入口文件。
例如:项目引用了一个叫 custom 的包,入口文件是
main.js
,目录为node_modules/custom/main.js
,在index.js
中通过const custom = require('custom') 引入
。
问题:默认情况下,require('custom')
是会去查找node_modules/custom
下的index.js
文件的,但这个包的入口文件是main.js
,此时会找不到报错。
解决方法:可以在node_modules/custom
执行一次npm init
生成一个配置文件,其中配置"mian: "main.js"
指定包的入口文件即可。 - scripts:用于配置一些脚本命令,以 key/value 的形式。配置后就可以通过
npm run key
来运行后面配置的 value。npm start
和npm run start
其实是等价的。对于常用的 start、stop、restart、test 等可以省略掉 run 直接运行。
使用:
-
进入目标文件夹。
-
在命令行中输入
npm install 包名
安装包,如果目标文件下有node_modules
目录,会自动将代码下载到node_modules
目录下,如果没有,那么会自动新建node_modules
目录并且将代码下载到node_modules
目录下。
-
通过 ES6 Module 中的 import 关键字和 CommonJS 中的
require()
函数引入时,会自动去node_modules
目录下查找指定的包,找到之后就可以在代码中使用了。