最近升级前端框架尝鲜,用VueCLI4.5.0脚手架工具创建项目,然后在开发工具中把项目的node_modules文件夹删除,package-lock.json文件删除后,重新npm install,没什么问题。然后启动就报错了ERROR TypeError: Cannot read properties of undefined (reading 'NormalModule')
NormalModule属性未定义,缺少了某些了依赖
然后只能用排除法逐个排出问题,我又用了vue脚手架 vue create
创建了新的正常工程。然后把我的项目依赖包都加在新工程中,然后运行新工程没问题,最后用文件对比器对比了新工程的package-lock.json文件和我的工程的package-lock.json文件,发现同样的package.json使用IDEA开发工具npm install生成package-lock.json和vue create然后执行
npm run serve后的package-lock.json文件是不一样的。
最后把用Vue脚手架工具生成的package-lock.json替换掉我在开发工具中执行npm install生成的package-lock.json就好了,不知道这个问题是不是官方的bug,因能力有限,也只能暂时放着了。
最后说具体的解决流程,使用vue脚手架 vue create
创建新的工程,让后把你项目中package.json的内容全部复制到新工程的package.json中
执行npm install安装,然后把新项目中的package-lock.json复制过来替换掉原来的package-lock.json,
node_modules文件夹你可以删除重新执行npm install安装,但不要删除package-lock.json,因为node_modules文件夹里的包是通过package-lock.json下载下来的。
有网友是:
使用vue脚手架 vue create
创建新的工程,
将新的node_modules覆盖老的node_modules
但我是直接换package-lock.json,然后在执行npm install安装的,然后就好了。
参考文献:
TypeError: Cannot read properties of undefined (reading ‘NormalModule‘)_学无止境