升级到节点7后无法find模块“内部/ fs”
我们最近尝试升级到构build服务器上的节点v7.0.0,但在应用程序构build任务失败的“bower_concat”步骤中开始出现问题:
Loading "bower-concat.js" tasks...ERROR Error: Cannot find module 'internal/fs'
我们已经安装了:
-
node
v7.0.0(通过yum
“nodesource”存储库安装) -
npm
4.0.1 - 使用
grunt
(如果这是相关的) -
grunt-bower-concat
0.6.0
咕噜生成任务configuration:
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: { 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的情况下解决问题吗?
也有这个相关的问题 ,但是到目前为止,那里的信息对我们的情况并没有帮助。
首先,以pipe理员身份打开控制台(如果是Linux,则使用sudo
打开terminal)和:
npm cache clean
编辑:
对于Windows,您可能无法清除caching,因此可以通过删除以下所有文件夹内容手动删除caching:
C:\Users\<USER-NAME>\AppData\Roaming\npm-cache
感谢“superwf”,这种情况可能会发生一些,但我从来没有这样做(也许是因为我的最低安全水平?!)。
结束编辑。
然后返回到正常控制台(不是pipe理员或root),返回到package.json所在的项目目录,然后从项目中删除node_modules
文件夹,将其完全删除,然后再次在项目中安装节点模块夹:
npm install
再次安装模块之前,您可能需要更新模块。 我build议这样做,但是如果模块中有任何主要的版本更改,请注意中断更改 。 这个模块npm-check-updates可以帮助你检查最新版本并更新它们。
另外,您可能还需要安装最新的全局模块,并通过以下方式检查更新:
ncu -g
要么
npm outdated -g
如果仍然卡住,则可能需要删除全局的node_modules
文件夹,然后重新安装所需的内容。
在我的情况下清除caching(OSX)没有工作。 我使用n
来pipe理导致npm
潜在地过期的节点。 根据n文件,你可以更新npm
:
curl -0 -L https://npmjs.org/install.sh | sudo sh
在linux中,当我更新到节点7时,发生了这种情况,“npm cache clean”确实起作用。
在Windows中,npmcaching清理也生成
错误:找不到模块“内部/ fs”
只要删除
C:\用户[用户名] \应用程序数据\漫游\ NPM
C:\用户[用户名] \应用程序数据\漫游\ NPM-caching
解决了
在我的情况下清除caching不起作用。 下面是我的初始状态,我是如何解决这个问题的:
node -v v7.4.0 npm -v 4.0.5
我使用n工具来pipe理节点(和捆绑的npm)版本之间的切换。
为了解决这个错误,我只是从全局空间(macOS)中删除了npm: sudo rm -rf /usr/local/lib/node_modules/npm
然后,我再次运行sudo n。 这将重新安装npm。 当切换回以前版本的节点时,只需运行sudo n 4.3.2。
总结:
> sudo rm -rf /usr/local/lib/node_modules/npm > sudo n latest > node --version v7.7.1 > npm --version 4.1.2 > sudo n 4.3.2 > npm --version 2.14.12
您需要安装最后一个版本的bower
> npm install -g bower
显然,npm> 4.0不使用内部/ fs模块。
在我的情况下清除caching不起作用。 所做的工作是删除我的nodejs安装位置中的node_modules/npm
文件夹。 然后再次运行nodejs安装程序并使用“修复”选项(注意:这是针对Windows的)。
从我可以在npmdebugging日志中收集的信息看来,在安装新版本之前,我的老版本的npm并没有完全删除。 所以在安装了npm的文件夹中有一些延迟弃用的模块。
我在Windows 8.1 x64上,从v6升级到v7。 我在全局安装了这个问题我已经安装了很多软件包,但是每次运行npm命令时,无论是npm install, npm list,npm update
等总是返回相同的错误
这一步对我有用:
- 通过删除npm-cache文件夹手动清理npmcaching
C:\用户[usrname] \应用程序数据\漫游\
- 删除/重命名我的NodeJS安装目录中的npm文件夹。 在这种情况下, 我将npm文件夹重命名为npm–
C:\ Program Files \ nodejs \ node_modules
- 重新安装NodeJS v7
一切正常,然后
如果使用mac
cd ~/.nvm/versions
并删除节点文件夹
我通过安装NVM来pipe理Node来解决这个问题
https://github.com/creationix/nvm#installation
安装NVM后,重新安装节点
nvm install node
为我工作的解决scheme是
1)删除node_modules /
sudo rm -R node_modules/
2)重新运行吞咽
gulp
在Win10上,这为我工作:(调整到相关的节点版本和用户名)
- 卸载节点(通过node-v7.8.0-x64.msi)
- 删除“C:\ Users \ yourusername \ AppData \ Roaming”中的文件夹“npm”和“npm-cache”
- 再次安装节点(通过节点v7.8.0-x64.msi)
经过Node v4.X升级到v7.8.0后,进入这个问题。 重新安装NPM和最新的检查,让我到一个工作NPM v4.5.0。
curl -L https://www.npmjs.com/install.sh | sh npm install npm@latest -g
没有答案为我工作。
最后我重新安装了节点和离子,并且做了这个诀窍:
npm cache clean -f npm install npm -g npm uninstall node npm install node -g
我的系统信息在解决问题之前:
Cordova CLI: 7.0.1 Ionic CLI Version: 1.7.11 <-- way too old Ionic App Lib Version: 0.6.5 ios-deploy version: 1.9.1 ios-sim version: 5.0.4 OS: Mac OS X El Capitan Node Version: v8.0.0 Xcode version: Xcode 8.3.3 Build version 8E3004b
1)sudo npmcaching清理-f
2)sudo npm install -gn
3)sudo n稳定
只是三个步骤:)
跑
sudo rm -rf /usr/local/lib/node_modules/npm
再次npm安装。 它会工作