升级到节点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等总是返回相同的错误

这一步对我有用:

  1. 通过删除npm-cache文件夹手动清理npmcaching

C:\用户[usrname] \应用程序数据\漫游\

  1. 删除/重命名我的NodeJS安装目录中的npm文件夹。 在这种情况下, 我将npm文件夹重命名为npm–

C:\ Program Files \ nodejs \ node_modules

  1. 重新安装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安装。 它会工作