npm 是javascript 包管理,也是世界上最大的软件记录。javascript
使用npm 能够安装,分享和贡献本身的代码,管理项目中的依赖包,html
npm的包依赖配置json文件,开发时能够在里面记录全部依赖包,也能够配置一些简单的npm 脚本,java
{ "name": "xxxxxx", "version": "11111", "description": "xxxxxxx", "author": xxxxx", "private": true, "scripts": { "dev": "node server.js", "start": "node server.js", "build": "node build.js " }, "dependencies": { }, "devDependencies": { "webpack": "^2.6.1", } }
上面是一个简单的package.json 文件的,里面有一些基本的配置项,主要有做用的是 scripts
,dependencies
,devDependencies
三类属性。node
//在scripts 字段中定义一些简单的脚本,好比上面定义了三个脚本,执行时能够这样: npm run dev 至关于执行 node server.js // 查看当前全部Npm脚本命令 npm run
*几种常见的简写形式* npm start 至关于 npm run start npm stop 至关于 npm run stop npm test 至关于 npm run test npm restart 至关于 npm run stop && npm run restart && npm run start
原理:webpack
npm run 新建一个shell,而且把当前目录的 node——modules/.bin
子目录加入PATH变量,执行结束后,再将PATH 变量恢复原样web
npm scripts 详细解释shell
npm install Xxx --save 安装模块,并把模块名和版本号添加到dependencies 部分。 npm install xxx --save-dev 安装模块,把模块名和版本号写在devdependencies部分。
区别就是,在生产环境,使用npm install --production
安装 dependencies 部分的模块,
在开发环境,npm i ,安装全部devDependencies 和 dependencies里面的模块npm
因此,在生产环境,就不须要安装 gulp ,webpack 这样的模块,能够经过这种方法区分json
几种简写指令:gulp
-P 至关于 --save-prod, 添加dependencies 里面全部的包。在 -D -O 不存在时,-P 就是默认值 -S 至关于 --save; 添加dependencies 里面全部的包。 -D 至关于 --save-dev; 添加devDependencies 里面全部的包, -O 至关于 --save-optional, 添加在 optionalDependencies 里面的包, --no-save: 阻止保存记录在dependencies 中,
合理使用这两个依赖记录,能够保证减小在生产环境下,打包后体积大小。
上门写到 使用npm run
等命令能够执行相应的脚本,一样也能够在其中进行参数传递,跟在Shell中经过process.env属性来传递参数进行参数的传递的方法基本同样。
一般的方法是,在环境变量NODE_ENV中传递参数,使用它来肯定当前所处的开发阶段,生产阶段设为production,开发阶段设为develop 或者staging,而后在脚本中读出 process.env.NODE_ENV便可
NODE_ENV = production npm run dev