问:dependencies 和 devDependencies 区别
- 依赖就是一定会用到的东西,开发依赖就是在开发中用到的,发布到线上不一定会用到的
问:会有这种场景吗?能举个例子吗
- 比如用我用一个gulp打包一个项目,开发的时候我就需要本地起一个服务来便于开发,可能就会需要一个gulp-connect的包,但是我线上打包的时候是不需要启动服务的,只需要压缩(gulp-uglify)、转换(gulp-babel)就行了。
- 此时就可以把,gulp-connect放入开发依赖中,把gulp-uglify等放入依赖中
- 远程发布打包的时候执行下载依赖、打包的过程中就不需要额外下载gulp-connect这个包了
问:还有别的例子吗?
- 比如我们在下载别人发布在npm上的包的时候,他的包依赖的包会被自动下载到我们本地,但是他的开发依赖包就不会下载到我们本地。因为开发依赖中的包可能是包的作者在开发时用到的一些工具,只是为了方便开发,并没有在功能中依赖这些包,不需要使用者强制下载。
- 举个例子:在我们下载一个包A的时候,会自动安装包A中依赖的包b、c,但是不会安装包A中开发依赖的包d、e
上图:
npm init --yes
npm i creat-ssc
输入上述命令:新建一个空npm项目,下载一个叫creat-ssc的包
你会发现同时下载了3个包,不仅下载了creat-ssc还下载了它依赖中的jquery、lodash
但是没有下载它开发依赖中的vue
懂?
- 懂,懂,懂。