运行环境
- windows 10
- npm 5.6.0
复现
- mkdir test
- cd test
- npm install --save-dev mocha
以上步骤操作下来,会显示安装成功
但是在test文件夹下面没有自动生成node_modules文件夹
解决
- mkdir test
- cd test\
- npm init
- npm install --save-dev mocha
只要初始化一下npm,再安装就会自动生成node_modules文件夹
问题
为什么会这样呢?
npm install的整个流程是怎么样的呢?
单从这个问题上来说,-dev依赖于package.json,package.json又必须通过Inti生成.所以会安装失败
根本原因还是对Install的原理不熟悉,这个需要自己看源码
你仔细看下命令行里的信息,第一遍安装会因为缺少 package.json 而失败,第二次才会成功。所以当然第二次能看到 node_modules 而第一次不能。
npm init
会生成 package.json,而--save-dev
要把包相关的信息记到 package.json 里,所以第一次就会失败;第二次能成功。其它的原理看源码吧。