npm安装包命令详解,dependencies与devDependencies实际区别

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