1.安装包命令
npm i(install) xxx:直接安装在当前文件夹下的node_modules下,但不写入package.json
npm i(install) xxx --save(-S):直接安装在当前文件夹下的node_modules下,写入package.json的dependencies
npm i(install) xxx --save-dev(-D):直接安装在当前文件夹下的node_modules下,写入package.json的devDependencies
npm i(install) xxx -g:安装在全局npm包管理器下
npm uninstall xxx 删除xxx模块;
npm uninstall -g xxx 删除全局模块xxx;
2.dependencies与devDependencies有什么区别呢
当你在安装了一些包后,会出现node_modules和package-lock.json,前一个就是放置包的源文件,后一个放置包的出处
此时你的package.json如下:
{ "name": "personal-blog", "version": "0.0.0", "dependencies": { "@angular/animations": "~8.2.14", "@angular/common": "~8.2.14", "rxjs": "~6.4.0", "tslib": "^1.10.0", "zone.js": "~0.9.1" }, "devDependencies": { "codelyzer": "^5.0.0", "jasmine-core": "~3.4.0", "jasmine-spec-reporter": "~4.2.1", "karma": "~4.1.0", "karma-chrome-launcher": "~2.2.0", "karma-coverage-istanbul-reporter": "~2.0.1", "karma-jasmine": "~2.0.1", "karma-jasmine-html-reporter": "^1.4.0", "protractor": "~5.4.0", "ts-node": "~7.0.0", "tslint": "~5.15.0", "typescript": "~3.5.3" } }
也许你有个疑问,dependencies与devDependencies有什么区别呢?
网上解释:
devDependencies 里面的插件只用于开发环境,不用于生产环境dependencies 是需要发布到生产环境的.那么这两个环境怎么用呢?比如我们写一个项目要依赖于jQuery,没有这个包的依赖运行就会报错,这时候就把这个依赖写入dependencies ;而我们使用的一些构建工具比如glup、webpack这些只是在开发中使用的包,上线以后就和他们没关系了,所以将它写入devDependencies。
个人理解:
对于项目:
- 在npm i 的时候都会安装在我们本地node_modules里
- 都可以使用相同的命令去卸载 npm uninstall xxx
- 在webpack打包的时候,不是说dependencies里的依赖包是线上使用的,就会一起打包,webpack是按需打包,所以看待dependencies和devDependencies是一样的处理
- 但是作为公司项目并不是你自己在开发,把包放在dependencies或者devDependencies里可以让你们开发的环境,包保持一致,要不然别人clone了你的代码,但是编译报错,不知道缺少了什么包,导致了浪费时间。但是放在dependencies或者devDependencies里,只需使用npm i 就会直接安装上
实质区别
- 如果我们只是单纯的做项目,那么我们可简单地认为生产环境和开发环境做为一种友善的提示,实质没有什么区别;但是,如果在发布npm包的时候,两种环境安装方式是有很大区别的!!!
- 在发布npm包的时候,本身dependencies下的模块会作为依赖,一起被下载;devDependencies下面的模块就不会自动下载了;但对于项目而言,npm install 会自动下载devDependencies和dependencies下面的模块。
参考---https://blog.csdn.net/qq_40677590/article/details/106780812