package.json
每一个项目都要有一个package.json
文件(包描述文件,就像产品的说明书一样)
这个文件可以通过npm init
自动初始化出来
D:\code\node中的模块系统>npm init This utility will walk you through creating a package.json file. It only covers the most common items, and tries to guess sensible defaults. See `npm help json` for definitive documentation on these fields and exactly what they do. Use `npm install <pkg>` afterwards to install a package and save it as a dependency in the package.json file. Press ^C at any time to quit. package name: (node中的模块系统) Sorry, name can only contain URL-friendly characters. package name: (node中的模块系统) cls version: (1.0.0) description: 这是一个测试项目 entry point: (main.js) test command: git repository: keywords: author: xiaochen license: (ISC) About to write to D:\code\node中的模块系统\package.json: { "name": "cls", "version": "1.0.0", "description": "这是一个测试项目", "main": "main.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "xiaochen", "license": "ISC" } Is this OK? (yes) yes
对于目前来讲,最有用的是dependencies
选项,可以用来帮助我们保存第三方包的依赖信息。
如果node_modules
删除了也不用担心,只需要在控制面板中npm install
就会自动把package.json
中的dependencies
中所有的依赖项全部都下载回来。
- 建议每个项目的根目录下都有一个
package.json
文件 - 建议执行
npm install 包名
的时候都加上--save
选项,目的是用来保存依赖信息
package.json和package-lock.json
npm 5以前是不会有package-lock.json
这个文件
npm5以后才加入这个文件
当你安装包的时候,npm都会生成或者更新package-lock.json
这个文件
- npm5以后的版本安装都不要加
--save
参数,它会自动保存依赖信息 - 当你安装包的时候,会自动创建或者更新
package-lock.json
文件 package-lock.json
这个文件会包含node_modules
中所有包的信息(版本,下载地址。。。)
- 这样的话重新
npm install
的时候速度就可以提升
- 从文件来看,有一个
lock
称之为锁
- 这个
lock
使用来锁版本的 - 如果项目依赖了
1.1.1
版本 - 如果你重新install其实会下载最细版本,而不是
1.1.1
package-lock.json
的另外一个作用就是锁定版本号,防止自动升级
总结和思考
package.json
是一个用于描述 Node.js 模块的元数据文件,它位于模块的根目录下。它包含了模块的名称、版本、作者、依赖等信息,以及一些脚本命令。
以下是 package.json
中的常用字段:
name
:模块的名称,必须是唯一的。version
:模块的版本号。description
:模块的描述信息。main
:指定模块入口文件的路径。keywords
:一组关键词,用于搜索和分类。repository
:存放代码的仓库信息。author
:模块作者的信息。license
:模块的许可证信息。dependencies
:指定依赖的其他模块,使用版本号进行控制。devDependencies
:开发依赖的其他模块,只在开发时需要使用。scripts
:定义一些脚本命令,例如测试、构建、运行等。
在使用 npm
或者 yarn
管理 Node.js 模块时,package.json
扮演了重要的角色。在项目根目录下执行 npm install
或者 yarn install
命令会根据 package.json
文件中的 dependencies
和 devDependencies
字段安装依赖的模块。
总之,package.json
是 Node.js 模块的重要元数据文件,通过它可以方便地管理模块的依赖关系、版本信息等。开发者可以根据实际情况对其中的各个字段进行配置。