一直在使用npm包管理器,对于npm install module --save-dev 和 npm install module --save这两个的区别做了一些浅析的理解:
package.json中各字段含义简介
这是两个十分重要的字段,是必填项,他们组成了npm包的唯一标识符,包内容变更的同时,version值也需要一起变更
对于你npm包的简略描述。可以通过npm search来进行搜索
npm包的关键词,可以通过npm search来进行搜索
项目官网的url地址,可有可无
填写一个bug提交的url地址和一个邮箱地址,这样方便使用者碰到项目bug时及时通知你 例如:
{"url":"http://blackgan3.github.io","email":"xuegan@58qf.com"}
dependencies属性被声明在一个简单的对象中,用来控制包名在一定的版本范围内,版本范围是一个字符串,可以被一个或多个空格分割。dependencied也可以被指定为一个压缩包地址或者一个 git URL 地址。
不要把测试工具或transpilers转义器(babel, webpack, gulp, postcss...)写到dependencies中。 (这些应该写到devDependencies)配置中,因为在别的项目中npm install 该包的时候会去下载dependencies中的依赖。
如果你的包被别人依赖或者安装时,在对方主项目中进行npm install便不会安装依赖包中的devDependencies中的npm包,所以如果你的项目中依赖的一些包不是在使用该项目时必须进行安装的,那就将包放在devDependencies中。
npm install module:
会把module包安装到node_modules目录中
不会修改package.json
之后运行npm install 命令时,不会自动安装module包
npm install module --save
会把module包安装到node_modules目录汇总
会修改package.json,将模块名和版本号添加到dependencies部分
之后运行npm install 命令时,会自动安装module包
之后运行npm install --production或者注明NODE_ENV变量值为production时,会自动安装 module到node_modules目录中,即是在线上环境运行时会将包安装
npm install module --save-dev
会把module包安装到node_modules目录汇总
会修改package.json,将模块名和版本号添加到devDependencies部分
之后运行npm install 命令时,会自动安装module包
之后运行npm install --production或者注明NODE_ENV变量值为production时,不会自动安装msbuild到node_modules目录中,即是在线上环境并不会进行安装。
首先,--save和--save-dev可以省掉我们手动修改package.json文件的步骤。我们使用的一些打包工具、非项目必须依赖的都放在devDependencies中。