npm几个重要概念总结如下:
1.npm install
本地安装(运行已开发程序的话只需要这个指令)
(1)将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modules 目录。
(2)可以通过 require() 来引入本地安装的包。
2.npm install
-g全局安装
(1) 将安装包放在 /usr/local 下或者你 node 的安装目录。
(2)可以直接在命令行里使用。
3.npm install --save 相当于npm install -S
(1)会把msbuild包安装到node_modules目录中
(2)会在package.json的dependencies属性下添加msbuild
(3)之后运行npm install命令时,会自动安装msbuild到node_modules目录中
(4)之后运行npm install --production或者注明NODE_ENV变量值为production时,会自动安装msbuild到node_modules目录中
4.npm install --save-dev 相当于npm install -D
(1)会把msbuild包安装到node_modules目录中
(2)会在package.json的devDependencies属性下添加msbuild
(3)之后运行npm install命令时,会自动安装msbuild到node_modules目录中
(4)之后运行npm install --production或者注明NODE_ENV变量值为production时,不会自动安装msbuild到node_modules目录中5.npm intall xxx@version 指定版本号安装
个人总结:简单来说-g安装到全局,不带-g的都是本地,带--save的会写入到dependencies,带--save-dev会写入到
devDependencies,–save 是你发布之后还依赖的东西(比如JQuery等),–save-dev 是你开发时候依赖的东西(比如gulp就是开发环境下依赖的一个前端工具)。
--save-dev
devDependencies 如gulp 开发需要
–save dependencies 如JQuery 上线仍然需要
package.json字段简介
字段相当多,但最重要的的是下面几个
- name: package的名字(由于他会成为url的一部分,所以 non-url-safe 的字母不会通过,也不允许出现"."、"_"),最好先在http://registry.npmjs.org/ 上搜下你取的名字是否已经存在
- version: package的版本,当package发生变化时,version也应该跟着一起变化,同时,你声明的版本需要通过semver的校验(semver可自行谷歌)
- dependencies: package的应用依赖模块,即别人要使用这个package,至少需要安装哪些东东。应用依赖模块会安装到当前模块的node_modules目录下。
- devDependencies:package的开发依赖模块,即别人要在这个package上进行开发
其他:
使用 npm i 安装package.json里的依赖时,两部分的包都会pull下来
1、使用 --prod、
npm i --prod <=> npm i --production // 仅会拉取dependencies中的依赖
2、设置NODE_DEV=production时 // 效果同上,仅会拉取dependencies中的依赖 (注意等号两边没空格)
2-1、命令行设置(注意不同环境时的"分割符")
window => cmd :set NODE_ENV=production && xxxx
mac => shell : NODE_ENV=production 空格 xxxx
2-2、package.json=>script命令中设置