配置 NPM
Opened this issue · 0 comments
概述
与NPM配置相关的,有下面几个文件:
- .npmrc
- package.json
- package-lock.json
- package-locks
- shrinkwrap.json
.npmrc
.npmrc文件,就是npm的配置文件所在位置。通过这个文件可以查看一些npm元信息,比如包的缓存目录、全局或本地node包的存放位置等等。
相关的指令有:
npm config list
npm config set <key> <value>
npm config get [<key>]
npm config delete <key>
npm config list [--json]
npm config edit
npm set <key> <value>
npm get [<key>]
配置项请参考:Npm config list 字段
package.json
该文件用于描述当前库的信息,包括名字、作者、描述、依赖等等。
package.json中最重要的属性是name和version两个属性,这两个属性是必须要有的,否则模块就无法被安装,这两个属性一起形成了一个npm模块的唯一标识符。模块中内容变更的同时,模块版本也应该一起变化。
name,名称
version,版本
description,描述
keywords,关键字
homepage,主页
bugs,bug提交地址或者邮箱
license,协议
author,作者
contributors,贡献者
email,作者邮箱
url,作者主页
files,项目包含的文件和文件夹,也可以通过`.npmignore`文件来配置
main,入口文件
browser,如果模块是用在浏览器端,那么应该适用browser字段而不是main字段
bin,可执行模块
man,仅适用linux系统
directories,描述模块结构
repository,代码存放地址
scripts,脚本
config,存放配置,可以通过process.env.npm_package_config_{key}来访问值
dependencies,依赖
devDependencies,开发时依赖
peerDependencies,同伴依赖
bundledDependencies,捆绑依赖
optionalDependencies,可选依赖
engines,指定工作的node版本
os,指定运行的操作系统,支持黑名单和白名单
cpu,指定运行的cpu架构
private,设置为私有库,防止意外发布
publishConfig,一些在发布包时需要的设置
版本号相关
>、>=、<、<=
,顾名思义- ~,大约等于
- ^,兼容版本
- *,匹配任意版本
- x,表示任意数字
- version1 - version2,表示区间,等同>=version1 <=version2
- tag,常用的有latest
- URL
- Git URL
- GitHub URL
peerDependencies
通常是在插件开发的场景下,你的插件需要某些依赖的支持,但是你又没必要去安装,因为插件的宿主会去安装这些依赖,你就可以用peerDependencies去声明一下需要依赖的插件和版本,如果出问题npm就会有警告来提醒使用者去解决版本冲突问题。
bin指定指令
如果包是安装在本地的话,package.json文件里的scripts字段可以识别./node_modules/.bin
路径下的指令;如果包是安装在全局的话,包里的bin字段对应的脚本会映射到系统PATH路径上——所以可以在终端执行这些脚本指令。
因为指令npm link
可以把本地开发的包安装到全局上,所以我们可以很方便测试自己写的指令。
npm unlink
可以注销掉之前安装到全局的本地包。
指令可以通过process.argv
获取终端传入的命令行参数,它是一个数组。
package-lock.json和shrinkwrap.json
这两个文件作用一样,除了一点,当发布一个包的时候shrinkwrap.json会被包含在里面。
package-locks
这包括npm install,npm rm,npm update等为了防止这种更新情况发生,你可以使用--no-save选项,防止一起保存,或 --no-shrinkwrap允许package.json同时使被更新 package-lock.json或npm-shrinkwrap.json完整。
参考
npm 中文文档
npm-folders
npm的package.json字段含义中文文档
peerDependencies介绍及简析
浅谈node.js命令行工具
npm package.json属性详解