npm i -D grunt 等同于 npm install --save-dev grunt 依赖包将会写入到 package.json 中的 devDependencies 对象
npm i -S grunt 或者 npm i grunt 等同于 npm install --save grunt 依赖包将会写入到 package.json 中的 dependencies 对象
devDependencies用于本地环境开发时候。dependencies用户发布环境
devDependencies是只会在开发环境下依赖的模块,生产环境不会被打入包内。通过NODE_ENV=developement或NODE_ENV=production指定开发还是生产环境。
而dependencies依赖的包不仅开发环境能使用,生产环境也能使用。其实这句话是重点,按照这个观念很容易决定安装模块时是使用--save还是--save-dev。
npx侧重于执行命令的,执行某个模块命令。虽然会自动安装模块,但是重在执行某个命令
npm侧重于安装或者卸载某个模块的。重在安装,并不具备执行某个模块的功能
以electron这个模块为例,基本背景是这样的:
当前项目test下,安装的是electron@8。
同时,电脑里面全局安装的是electron@12。
npx electron -v命令会显示什么样的版本号
-
在项目根目录下面,执行
npx electron -v,显示的node_modules/下的electron版本号。 -
在其它路径下面,执行
npx electron -v,显示的全局的electron版本号。
然后,卸载全局的electron。再次在非项目路径下,执行npx electron -v。显示的是最新的electron版本号。
npx 开关