先来package.json代码
生成packjson.js的命令是npm init
npm init
:这个命令用于创建一个新的package.json,会提问
npm init --yes
或npm init -y
:从当前目录中提取的信息生成默认的package.json,创建过程不会提问
也可以完全自定义package.json文件的内容和在init期间提出的问题。这通过创建自定义.npm-init.js来完成。默认情况下,npm将查找您的主目录。 〜/ .npm-init.js
{
"dependencies": {
"vue": "^2.2.1"
},
"devDependencies": {
"babel-core": "^6.0.0",
"babel-loader": "^6.0.0",
"babel-preset-latest": "^6.0.0",
"cross-env": "^3.0.0",
"css-loader": "^0.25.0",
"file-loader": "^0.9.0",
"vue-loader": "^11.1.4",
"vue-template-compiler": "^2.2.1",
"webpack": "^2.2.0",
"webpack-dev-server": "^2.2.0"
}
}
dependencies与devDependencies
dependencies和devDependencies指定了项目依赖的包。
- dependencies:这些包在生产中需要。
- devDependencies:这些包用于开发和测试。
npm install <package_name> --save命令会添加条目到package.json的dependencies中。
npm install <package_name> --save-dev命令会添加条目到package.json的devDependencies中。
npm install
- 运行
npm install
时,会自动下载dependencies和devDependencies中的模块到当前项目目录下 - 当使用
npm install --production
或者注明NODE_ENV变量值为production时,只会下载dependencies中的模块到当前目录下。
总结
开发测试时需要而发布上线生产后不需要的模块包,安装时运行npm install --save -dev moduleName
;开发和发布上线后都需要的模块包,安装时运行npm install --save moduleName
。比如项目中使用的 gulp ,压缩css、js的模块,这些模块在我们的项目部署后是不需要的,应该安装在 devDependencies 节点下,所以我们可以使用 -save-dev 的形式安装。像 express 这些模块是项目运行必备的,应该安装在 dependencies 节点下,所以我们应该使用 -save 的形式安装。