文章目录
1.package.json
1.1 name & version
- 如果想要发布一个npm包,
name
和version
属性是必须的。 - 他们两个组合会形成一个唯一的标识来表名当前包。
1.2 dependencies & devDependencies
dependencies
中的包是生产环境
的依赖,属于线上代码的一部分,比如vue、axios、veui等。devDependencies
中的包是开发环境
的依赖,只是在本地开发的时候需要依赖这里的包,比如 vue-loader、eslint等。npm install name -save
简写(npm install name -S) 自动把模块和版本号添加到dependencies
。npm install name -save-dev
简写(npm install name -D) 自动把模块和版本号添加到devdependencies
。
举个例子:
- 构建工具:
gulp
和webpack
是用来压缩代码,打包等需要的工具,程序实际运行的时候并不需要,就要放在dev中所以要用-D
- 项目插件:例如
element ui
、echarts
这种插件要在运行中使用的,就要放在dep中所以就用-S
1.3 scripts
- 定义在
scripts
中的命令,通过npm run <command>
就可以执行。
"scripts": {
"start": "cross-env NODE_OPTIONS=--max_old_space_size=8192 ESLINT=none umi dev",
"build": "cross-env NODE_OPTIONS=--max_old_space_size=8192 ESLINT=none umi build",
"postinstall": "umi generate tmp",
"prettier": "prettier --write '**/*.{js,jsx,tsx,ts,less,md,json}'",
"test": "umi-test",
"test:coverage": "umi-test --coverage",
"analyze": "cross-env NODE_OPTIONS=--max_old_space_size=8192 ANALYZE=1 umi build"
},
2.package-lock.json
比如引入vue包:vue:^2.6.1。A小伙伴下载的时候是2.6.1,过一阵有另一个小伙伴B入职在安装包的时候,vue已经升级到2.6.2,这样npm就会下载2.6.2的包安装在他的本地。
这样会导致依赖包版本的不同,可能会引起错误。
这时就需要用到package-lock.json
- 每当
npm install
执行的时候,npm都会产生或者更新package-lock.json
文件。 package-lock.json
文件的作用就是锁定当前的依赖安装结构,与node_modules
中下所有包的树状结构一一对应。