问题描述
该项目是拷贝的另一个项目(可正常运行),原项目曾将elementui的引入改为cdn引入,但是本地开发和打包运行都无误,拷贝后的项目npm install后,dev启动报错
ERROR Failed to compile with 1 errors 上午10:40:34
This dependency was not found:
* element-ui/lib/theme-chalk/index.css in ./src/main.js
To install it, you can run: npm install --save element-ui/lib/theme-chalk/index.css
Error from chokidar (D:\): Error: EBUSY: resource busy or locked, lstat 'D:\pagefile.sys'
原因分析
- 一开始百度的方法都是删除
node_modules或npm cache clean --force后重新npm install,都无用 - 根据报错提示
npm install --save element-ui/lib/theme-chalk/index.css,依然报错 - package.json增加element-ui,依然报错
- 删除原项目的依赖后重新
npm install,发现也无法再正常运行 - 重新安装了nodejs和npm,依然无法解决
- 不使用CDN引用方式,改回最原始的npm第三方依赖引入方式,运行正常
由此可知,问题出在elementui的cdn引入方式
问题解决
重新研究vue/webpack的cdn引入:
【vue/webpack3】【element-ui】引入CDN资源
终极原因分析
旧的出问题的引入方式与新的方式差别在两个地方:
- 旧项目能正常运行的时候
node_modules有残留的‘element-ui’ - main.js的旧的通过require方式引入
因为旧的方式之前运行打包都没问题,以为问题出在package.json里去掉了‘element-ui’,但按原理运行时引入的应该是window域下的‘element-ui’,node_modules里有没有并不影响
最终发现:问题出现在的就main.js配置中的import ElementUI from 'element-ui'注释掉了,但import 'element-ui/lib/theme-chalk/index.css'未注释掉,所以才会报错This dependency was not found: * element-ui/lib/theme-chalk/index.css in ./src/main.js
经验教训:认真分析自己的错误信息,直接百度不靠谱!!!
版权声明:本文为lorogy原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。