面试时候被问到npm包依赖管理的问题。虽然当时知道有这种情况,但是之前并未深入的了解,所以答得是是而非,回来之后就整理了一下,整理如下:
我们在使用npm install 安装模块或插件的时候,有两种命令把他们写入到 package.json 文件里面去,他们是:--save-dev或--save
Dependencies一词的中文意思是依赖和附属的意思,而dev则是develop(开发)的简写。
所以它们的区别在 package.json 文件里面体现出来的就是,使用 --save-dev 安装的 插件,被写入到 devDependencies 域里面去,而使用 --save 安装的插件,则是被写入到 dependencies 区块里面去。
devDependencies 和 dependencies 的区别如下:
1、devDependencies 里面的插件只用于开发环境,不用于生产环境,而 dependencies 是需要发布到生产环境的。
2、比如我们写一个项目需要跨域请求数据,要依赖于JSONP,没有这个包的依赖运行就会报错,这时候就把JSONP写入dependencies ;
而我们使用的一些构建工具比如使用webpack进行打包,上线以后就和他们没关系了,所以将它写入devDependencies。