升级到节点 7 后找不到模块 'internal/fs'
Cannot find module 'internal/fs' after upgrading to node 7
我们最近尝试在构建服务器上升级到节点 v7.0.0,但在 "bower_concat" step:
上的应用程序构建任务失败期间开始出现问题
Loading "bower-concat.js" tasks...ERROR
Error: Cannot find module 'internal/fs'
我们安装了什么:
node
v7.0.0(通过 yum
"nodesource" repository 安装)
npm
4.0.1
- 使用
grunt
(如果相关)
grunt-bower-concat
0.6.0
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'
]
);
而 grunt 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 的情况下解决这个问题吗?
还有 this relevant issue,但截至目前,那里的信息对我们的情况没有帮助。
首先,以管理员身份打开控制台(如果是 Linux,则在终端中使用 sudo
)并:
npm cache clean
对于 npm 5 及更高版本
npm cache clean --force
编辑:
对于windows,您可能无法清理缓存,因此您可以通过删除以下所有文件夹内容来手动移除缓存:
C:\Users\<USER-NAME>\AppData\Roaming\npm-cache
谢谢"superwf",这种情况可能会发生在某些人身上,但我从来没有这样做过(可能是因为我的安全级别最低?!)。
结束编辑。
然后回到普通控制台(不是管理员或root),return到你的package.json所在的项目目录,然后删除你的node_modules
文件夹项目,将其完全删除,然后在项目文件夹中再次安装节点模块:
npm install
您可能需要在再次安装模块之前更新您的模块。我推荐这样做,但是如果您的模块中有任何主要版本更改,请注意中断更改。
此模块npm-check-updates可以帮助您检查最新版本并更新它们。
此外,您可能还需要安装最新的全局模块,通过以下方式检查更新:
ncu -g
或
npm outdated -g
如果仍然卡住,您可能需要删除全局 node_modules
文件夹并重新安装您想要的内容。
编辑:
Yarn 选项:有些人即使使用清理程序也会遇到同样的问题,实际上使用 Yarn 可以节省很多时间。
就个人而言,我开始使用 yarn
而不是传统的 npm i
,我可以保证它更快,并且节省您的时间,并且让您的头脑免于 npm 头痛。
在linux中,当我更新到节点7时,发生了这种情况,“npm cache clean”确实有效。
在windows中,npm cache clean也会生成
Error: Cannot find module 'internal/fs'
只需删除
C:\Users[username]\AppData\Roaming\npm
C:\Users[username]\AppData\Roaming\npm-cache
已解决
就我而言,清除缓存 (OSX) 无效。我使用 n
来管理导致 npm
可能已过时的节点。根据 n docs,您可以将 npm
更新为:
curl -0 -L https://npmjs.org/install.sh | sudo sh
在我的例子中,清除缓存不起作用。以下是我的初始状态以及我是如何解决这个问题的:
node -v v7.4.0
npm -v 4.0.5
我通过执行以下操作并使用 n 管理器解决了问题:
$ sudo n 6.9.1
$ sudo npm -g install npm@next
$ sudo n stable
希望对您有所帮助!
我使用 n tool 来管理节点(和捆绑的 npm)版本之间的切换。
为了修复此错误,我只是从全局 space (macOS) 中删除了 npm:sudo rm -rf /usr/local/lib/node_modules/npm
然后我重新运行 sudo n latest。这将重新安装 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 不使用 internal/fs 模块。
在我的例子中,清除缓存不起作用。起作用的是删除我的 nodejs 安装位置中的 node_modules/npm
文件夹。然后再次 运行 nodejs 安装程序并使用 'repair' 选项(注意:这是针对 Windows)。
根据我在 npm 调试日志中收集到的信息,看起来我的旧版本 npm 在安装新版本之前没有完全删除。所以在安装 npm 的文件夹中有一些挥之不去的弃用模块。
对我有用的解决方案是
1) Delete node_modules/
sudo rm -R node_modules/
2) Re-run gulp
gulp
在 Win10 上这对我有用:(调整到相关的节点版本和用户名)
- 卸载节点(通过 node-v7.8.0-x64.msi)
- 删除 'C:\Users\yourusername\AppData\Roaming
中的文件夹 'npm' 和 'npm-cache'
- 再次安装节点(通过node-v7.8.0-x64.msi)
运行 在节点 v4.X 升级到 v7.8.0 后出现此问题。重新安装 NPM 并进行最新检查,使我可以使用 NPM v4.5.0。
curl -L https://www.npmjs.com/install.sh | sh
npm install npm@latest -g
我正在使用 Windows 8.1 x64,从 v6 升级到 v7。
我在全局安装时遇到了这个问题
我已经安装了很多包,但是每次我 运行 npm 命令,是否 npm install, npm list,npm update
等总是 return 相同的错误
这一步对我有用:
- 通过删除位于
的 npm-cache 文件夹手动清理 npm 缓存
C:\Users[usrname]\AppData\Roaming\
我的 NodeJS 安装目录中的 - Remove/rename npm 文件夹。在这种情况下,我在
中将 npm 文件夹重命名为 npm--
C:\Program Files\nodejs\node_modules
- 重新安装 NodeJS v7
然后一切正常
如果使用 mac
cd ~/.nvm/versions
并删除节点文件夹
None 个答案对我有用。
最后我重新安装了 node 和 ionic,结果成功了:
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
运行
sudo rm -rf /usr/local/lib/node_modules/npm
再次 npm 安装。它会起作用
1) sudo npm 缓存清理 -f
2) sudo npm install -g n
3) sudo n 稳定
只需三步:)
我通过安装 NVM 来管理节点来解决这个问题
https://github.com/creationix/nvm#installation
安装 NVM 后,重新安装节点
nvm install node
如果您正在使用 n
更新 node
版本并且所有 npm 命令都失败并显示此消息,这意味着您拥有最新的节点但 npm 版本较旧。
所以在这种情况下执行以下操作,(可能需要 sudo)
n 4.7
npm install npm -g
n latest
它将返回到节点 4.7,然后使用它安装最新的 npm。之后它将返回到最新的 npm 版本。 (用你真正想要的任何版本替换最新的)
我们最近尝试在构建服务器上升级到节点 v7.0.0,但在 "bower_concat" step:
上的应用程序构建任务失败期间开始出现问题Loading "bower-concat.js" tasks...ERROR
Error: Cannot find module 'internal/fs'
我们安装了什么:
node
v7.0.0(通过yum
"nodesource" repository 安装)npm
4.0.1- 使用
grunt
(如果相关) grunt-bower-concat
0.6.0
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'
]
);
而 grunt 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 的情况下解决这个问题吗?
还有 this relevant issue,但截至目前,那里的信息对我们的情况没有帮助。
首先,以管理员身份打开控制台(如果是 Linux,则在终端中使用 sudo
)并:
npm cache clean
对于 npm 5 及更高版本
npm cache clean --force
编辑:
对于windows,您可能无法清理缓存,因此您可以通过删除以下所有文件夹内容来手动移除缓存:
C:\Users\<USER-NAME>\AppData\Roaming\npm-cache
谢谢"superwf",这种情况可能会发生在某些人身上,但我从来没有这样做过(可能是因为我的安全级别最低?!)。
结束编辑。
然后回到普通控制台(不是管理员或root),return到你的package.json所在的项目目录,然后删除你的node_modules
文件夹项目,将其完全删除,然后在项目文件夹中再次安装节点模块:
npm install
您可能需要在再次安装模块之前更新您的模块。我推荐这样做,但是如果您的模块中有任何主要版本更改,请注意中断更改。 此模块npm-check-updates可以帮助您检查最新版本并更新它们。
此外,您可能还需要安装最新的全局模块,通过以下方式检查更新:
ncu -g
或
npm outdated -g
如果仍然卡住,您可能需要删除全局 node_modules
文件夹并重新安装您想要的内容。
编辑:
Yarn 选项:有些人即使使用清理程序也会遇到同样的问题,实际上使用 Yarn 可以节省很多时间。
就个人而言,我开始使用 yarn
而不是传统的 npm i
,我可以保证它更快,并且节省您的时间,并且让您的头脑免于 npm 头痛。
在linux中,当我更新到节点7时,发生了这种情况,“npm cache clean”确实有效。
在windows中,npm cache clean也会生成
Error: Cannot find module 'internal/fs'
只需删除
C:\Users[username]\AppData\Roaming\npm
C:\Users[username]\AppData\Roaming\npm-cache
已解决
就我而言,清除缓存 (OSX) 无效。我使用 n
来管理导致 npm
可能已过时的节点。根据 n docs,您可以将 npm
更新为:
curl -0 -L https://npmjs.org/install.sh | sudo sh
在我的例子中,清除缓存不起作用。以下是我的初始状态以及我是如何解决这个问题的:
node -v v7.4.0
npm -v 4.0.5
我通过执行以下操作并使用 n 管理器解决了问题:
$ sudo n 6.9.1
$ sudo npm -g install npm@next
$ sudo n stable
希望对您有所帮助!
我使用 n tool 来管理节点(和捆绑的 npm)版本之间的切换。
为了修复此错误,我只是从全局 space (macOS) 中删除了 npm:sudo rm -rf /usr/local/lib/node_modules/npm
然后我重新运行 sudo n latest。这将重新安装 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 不使用 internal/fs 模块。
在我的例子中,清除缓存不起作用。起作用的是删除我的 nodejs 安装位置中的 node_modules/npm
文件夹。然后再次 运行 nodejs 安装程序并使用 'repair' 选项(注意:这是针对 Windows)。
根据我在 npm 调试日志中收集到的信息,看起来我的旧版本 npm 在安装新版本之前没有完全删除。所以在安装 npm 的文件夹中有一些挥之不去的弃用模块。
对我有用的解决方案是
1) Delete node_modules/
sudo rm -R node_modules/
2) Re-run gulp
gulp
在 Win10 上这对我有用:(调整到相关的节点版本和用户名)
- 卸载节点(通过 node-v7.8.0-x64.msi)
- 删除 'C:\Users\yourusername\AppData\Roaming 中的文件夹 'npm' 和 'npm-cache'
- 再次安装节点(通过node-v7.8.0-x64.msi)
运行 在节点 v4.X 升级到 v7.8.0 后出现此问题。重新安装 NPM 并进行最新检查,使我可以使用 NPM v4.5.0。
curl -L https://www.npmjs.com/install.sh | sh
npm install npm@latest -g
我正在使用 Windows 8.1 x64,从 v6 升级到 v7。
我在全局安装时遇到了这个问题
我已经安装了很多包,但是每次我 运行 npm 命令,是否 npm install, npm list,npm update
等总是 return 相同的错误
这一步对我有用:
- 通过删除位于 的 npm-cache 文件夹手动清理 npm 缓存
C:\Users[usrname]\AppData\Roaming\
-
我的 NodeJS 安装目录中的
- Remove/rename npm 文件夹。在这种情况下,我在 中将 npm 文件夹重命名为 npm--
C:\Program Files\nodejs\node_modules
- 重新安装 NodeJS v7
然后一切正常
如果使用 mac
cd ~/.nvm/versions
并删除节点文件夹
None 个答案对我有用。
最后我重新安装了 node 和 ionic,结果成功了:
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
运行
sudo rm -rf /usr/local/lib/node_modules/npm
再次 npm 安装。它会起作用
1) sudo npm 缓存清理 -f
2) sudo npm install -g n
3) sudo n 稳定
只需三步:)
我通过安装 NVM 来管理节点来解决这个问题
https://github.com/creationix/nvm#installation
安装 NVM 后,重新安装节点
nvm install node
如果您正在使用 n
更新 node
版本并且所有 npm 命令都失败并显示此消息,这意味着您拥有最新的节点但 npm 版本较旧。
所以在这种情况下执行以下操作,(可能需要 sudo)
n 4.7
npm install npm -g
n latest
它将返回到节点 4.7,然后使用它安装最新的 npm。之后它将返回到最新的 npm 版本。 (用你真正想要的任何版本替换最新的)