我们最近尝试在构建服务器上升级到节点v7.0.0,但是在“ bower_concat”步骤失败的应用程序构建任务期间开始出现问题:
Loading "bower-concat.js" tasks...ERROR Error: Cannot find module 'internal/fs'
我们已经安装了什么:
node
yum
npm
grunt
grunt-bower-concat
Grunt构建任务配置:
grunt.registerTask( 'build:prod', [ 'clean:prod', 'copy:prod', 'replace', 'bower_concat', 'ngtemplates', 'concat', 'uglify', 'cssmin', 'injector:prod', 'copy:cssfix', 'copy:dist', 'bowercopy:dist', 'bowercopy:fonts', 'template:setProdVersion' ] );
和bower_concat艰巨的任务:
bower_concat
bower_concat: { all: { dest: '<%= app.build %>/bower.js', cssDest: '<%= app.build %>/bower.css', dependencies: { 'bootstrap': 'jquery' }, mainFiles: { "angular-app-modules": [ "app/dist/angular-app-modules.min.js", "app/dist/angular-app-modules.min.css" ] } } },
请注意,它在节点v6.9.0上没有任何问题。
是什么原因引起的?我们是否可以解决该问题而无需降级到节点v6?
也存在这个相关问题,但是到目前为止,该信息对我们的案例没有帮助。
首先,以管理员身份打开控制台(sudo如果是Linux ,则在终端中打开控制台),然后:
sudo
npm cache clean
对于npm 5及更高版本
npm cache clean --force
编辑:
对于Windows,您可能无法清除缓存,因此可以通过删除以下所有文件夹内容来手动删除缓存:
C:\Users\<USER-NAME>\AppData\Roaming\npm-cache
谢谢“ superwf”,这种情况可能会发生一些,但是我不必这样做(也许是因为我的最低安全级别?!)。
结束编辑。
然后返回普通控制台(不是管理员或root用户),返回到package.json所在的项目目录,然后node_modules从项目中删除该文件夹,将其完全删除,然后在项目文件夹中再次安装节点模块:
node_modules
npm install
您可能需要先更新模块,然后才能再次安装模块。我建议这样做,但是如果模块中有任何主要版本更改,请 务必避免更改 更改。此模块npm-check- updates可以帮助您检查最新版本并进行更新。
另外,您可能还需要安装最新的全局模块,并通过以下方法检查更新:
ncu -g
要么
npm outdated -g
如果仍然卡住,则可能需要删除全局node_modules文件夹,然后重新安装所需的文件。
编辑 :
Yarn选项 :有些人甚至在清理程序上都遇到了同样的问题,实际上,使用 Yarn 可以节省很多时间。就我个人而言,我开始使用它yarn而不是传统方法npm i,我可以保证它更快,并节省您的时间,并使您的头免于npm的困扰。
yarn
npm i