web-dev-qa-db-ja.com

ノード7へのアップグレード後にモジュール 'internal / fs'が見つかりません

最近、ビルドサーバーでノードv7.0.0にアップグレードしようとしましたが、アプリケーションのビルドタスクが "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

グラントビルドタスクの構成:

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にダウングレードせずに問題を回避できますか?


この関連する問題 もありますが、現時点では、そこにある情報は役に立ちません。

53
alecxe

最初に、管理者として(またはLinuxの場合はSudoの端末で)コンソールを開き、以下を実行します。

npm cache clean

Npm 5以降の場合

npm cache clean --force

編集:

ウィンドウの場合、キャッシュのクリーニングに失敗する可能性があるため、以下のすべてのフォルダーコンテンツを削除することにより、手動でキャッシュを削除できます。

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

「superwf」のおかげで、このケースは一部の人にとっては起こるかもしれませんが、私はこれをする必要はありませんでした(おそらく最低のセキュリティレベルのためでしょうか!)。

編集の終了。


次に、通常のコンソール(管理者またはルートではない)に戻り、package.jsonがあるプロジェクトディレクトリに戻り、プロジェクトからnode_modulesフォルダーを削除し、完全に削除してからノードモジュールをインストールします。再びプロジェクトフォルダ内:

npm install

モジュールを再度インストールする前に、モジュールを更新する必要がある場合があります。これをお勧めしますが、モジュールにメジャーバージョンの変更がある場合は、重大な変更に注意してください。このモジュール npm-check-updates は、最新バージョンを確認して更新するのに役立ちます。

また、最新のグローバルモジュールもインストールする必要があるかもしれません。次の方法でアップデートを確認してください。

ncu -g

または

npm outdated -g

それでも動かない場合は、グローバルnode_modulesフォルダーを削除して、必要なものを再インストールする必要がある場合があります。


編集

糸オプション:クリーンアップ手順でも同じ問題で終わる人もいましたが、実際には 個人的に、私は従来のnpm iの代わりにyarnを使い始めました。それがより速く、時間を節約し、npmの頭痛から頭を守ることができます。

58
Al-Mothafar

私の場合、キャッシュのクリア(OSX)は機能しませんでした。 nを使用して、npmが古くなる可能性のあるノードを管理します。 n docs によると、npmを以下で更新できます:

curl -0 -L https://npmjs.org/install.sh | Sudo sh
19
cyberwombat

Linuxでは、ノード7に更新すると、「npm cache clean」が機能します。

Windowsでは、npm cache cleanも生成します

エラー:モジュール 'internal/fs'が見つかりません

削除するだけ

C:\ Users [ユーザー名]\AppData\Roaming\npm

C:\ Users [ユーザー名]\AppData\Roaming\npm-cache

解決した

14
superwf

私の場合、キャッシュのクリアは機能しませんでした。以下は私の初期状態であり、これをどのように解決したかです:

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

お役に立てれば!

11

n tool を使用して、ノード(およびバンドルされている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
6
rynop

私のために働いた解決策は

1)node_modules /を削除します

Sudo rm -R node_modules/ 

2)gulpの再実行

gulp

3
zeros-and-ones

Bowerの最新バージョンをインストールする必要があります

> npm install -g bower

どうやら、npm> 4.0はinternal/fsモジュールを使用しません。

2
Anis Ben Amara

Windows 8.1 x64で、v6からv7にアップグレードしています。グローバルインストールでこの問題が発生しました。多くのパッケージが既にインストールされていますが、npmコマンドを実行するたびに、npm install, npm list,npm updateなどが常に同じエラーを返すかどうか

このステップは私のために働く:

  1. Npmキャッシュを消去手動にあるnpm-cacheフォルダーを削除して

C:\ Users [usrname]\AppData\Roaming \

  1. npmの削除/名前変更 NodeJSインストールディレクトリ内のフォルダー。この場合、npmフォルダーをnpm--に名前変更します in

C:\ Program Files\nodejs\node_modules

  1. NodeJS v7を再インストールします

すべて正常に動作します

2

Macを使用している場合

cd ~/.nvm/versions

ノードフォルダを削除します

2
Tokala Sai Teja

NVMをインストールしてノードを管理することでこれを解決します

https://github.com/creationix/nvm#installation

nVMをインストールした後、ノードを再インストールします

nvm install node
2
cyberfly

私の場合、キャッシュのクリアは機能しませんでした。動作したのは、nodejsのインストール場所からnode_modules/npmフォルダーを削除することでした。次に、nodejsインストーラーを再度実行し、「修復」オプションを使用します(注:これはWindows用です)。

Npmデバッグログで収集できることから、新しいバージョンがインストールされる前に、古いバージョンのnpmが完全に削除されていないように見えました。そのため、npmがインストールされたフォルダーにいくつかの非推奨モジュールが残っていました。

2
Adam Weber

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
1
Ryan Ruppert

答えはどれも私には役に立たなかった。

最後に、ノードと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
1
David Nathan

Win10では、これは私のために働いた:(関連するノードのバージョンとユーザー名に調整する)

  • ノードのアンインストール(node-v7.8.0-x64.msi経由)
  • 「C:\ Users\yourusername\AppData\Roaming」のフォルダー「npm」および「npm-cache」を削除します
  • ノードを再度インストールします(node-v7.8.0-x64.msiを使用)
1
Michael L

nを使用してnodeバージョンを更新しており、すべてのnpmコマンドがこのメッセージで失敗している場合、つまり、最新のノードであるが古いnpmバージョンがある場合。

この場合、以下を実行します(Sudoが必要な場合があります)

n 4.7 npm install npm -g n latest

ノード4.7に戻り、それを使用して最新のnpmをインストールします。その後、最新のnpmバージョンに戻ります。 (最新のものを実際に必要なバージョンに置き換えます)

0
Haseeb Eqx

1)sudo npm cache clean -f

2)sudo npm install -g n

3)sudo n安定

わずか3ステップ:)

0
Krunal Vaghela