一尘不染

升级到节点7后找不到模块“ internal / fs”

node.js

我们最近尝试在构建服务器上升级到节点v7.0.0,但是在
bower_concat”步骤
失败的应用程序构建任务期间开始出现问题:

Loading "bower-concat.js" tasks...ERROR
Error: Cannot find module 'internal/fs'

我们已经安装了什么:

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: {
    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?


也存在这个相关问题,但是到目前为止,该信息对我们的案例没有帮助。


阅读 196

收藏
2020-07-07

共1个答案

一尘不染

首先,以管理员身份打开控制台(sudo如果是Linux ,则在终端中打开控制台),然后:

npm cache clean

对于npm 5及更高版本

npm cache clean --force

编辑:

对于Windows,您可能无法清除缓存,因此可以通过删除以下所有文件夹内容来手动删除缓存:

C:\Users\<USER-NAME>\AppData\Roaming\npm-cache

谢谢“ superwf”,这种情况可能会发生一些,但是我不必这样做(也许是因为我的最低安全级别?!)。

结束编辑。


然后返回普通控制台(不是管理员或root用户),返回到package.json所在的项目目录,然后node_modules从项目中删除该文件夹,将其完全删除,然后在项目文件夹中再次安装节点模块:

npm install

您可能需要先更新模块,然后才能再次安装模块。我建议这样做,但是如果模块中有任何主要版本更改,请 务必避免更改 更改。此模块npm-check-
updates
可以帮助您检查最新版本并进行更新。

另外,您可能还需要安装最新的全局模块,并通过以下方法检查更新:

ncu -g

要么

npm outdated -g

如果仍然卡住,则可能需要删除全局node_modules文件夹,然后重新安装所需的文件。


编辑

Yarn选项 :有些人甚至在清理程序上都遇到了同样的问题,实际上,使用 Yarn
可以节省很多时间。就我个人而言,我开始使用它yarn而不是传统方法npm i,我可以保证它更快,并节省您的时间,并使您的头免于npm的困扰。

2020-07-07