web-dev-qa-db-ja.com

npm install packagename --save-devがpackage.jsonを更新しない

package.json --save-devの実行後に更新されませんか?これは私のコマンドです:

npm install modulename --save-dev

プロジェクトのルートから実行します。コマンドが成功すると、期待どおりに新しいモジュールがnode_modulesディレクトリに表示されます。ヘルプをいただければ幸いです。私はnpm v 1.4.28を使用しています

私の現在の_package.jsonは:

{
    "name": "FooWeb",
    "version": "1.0.0",
    "description": "Foo Web",
    "devDependencies": {
        "gulp": "3.8.11",
        "gulp-jshint": "1.9.2",
        "gulp-concat": "2.5.2",
        "gulp-sass": "1.3.3",
        "gulp-sourcemaps": "1.4.0",
        "gulp-watch": "4.1.1"
    }
}

パッケージのインストール時に、リポジトリフィールドまたはREADMEがないという警告が表示されますが、関連していないと思います。

48

私もこの問題を抱えていて、それが私を夢中にさせていました。

最終的に修正されたのは、npm initを実行していたことです。これにより、package.jsonに大量のものが追加されましたが、その後--save-devは期待どおりに機能しました。 npm initによって追加された新しいものをすべて削除した後でも、--save-devは機能しました。

58
hook

そこに-gフラグがあり、それを削除すると、期待どおりに機能しました...

7
Mustafah

jSONファイルに移動->プロパティを右クリック->「読み取り専用」フラグを削除。

6
ndesign11

私は最近これに遭遇し、何らかの理由でAtomであり、ファイルが開いていなくてもファイルの更新を妨げていたことがわかりました。

エディターを閉じて、npmインストールを再実行し、エディターを再度開きました。

4
Phil Mayfield

これは、保存されていないpackage.jsonを開いている場合、VSCode(またはおそらく他のエディター)で発生する可能性があります。

ファイルwasは実際に更新されていますが、IDEにリロードされていません。ファイルが編集されていない場合にのみデフォルトでリロードされると思いますか?または、警告を無視するために何かをクリックしたかもしれません。

3
Simon_Weaver

Mustafah ELBannaの答えは私を助けましたが、私は自分のような他の初心者のために彼の答えを広げたいです。重要なものを見逃した場合は修正してください。

-gフラグを削除すると、モジュールはマシンにグローバルにインストールされず、プロジェクト内のローカルにのみインストールされます。また、グローバルにインストールする場合は、同じコマンドを再度実行しますが、次のように-gの代わりに--save-devを使用します。

npm install --save-dev [packagename]

npm install -g [packagename]

-g--saveを1行で呼び出すと、何かがうまくいかないように思えます。

しかし、繰り返しますが、私はこれに慣れていないので、私の答えを改善/修正したい人に感謝しています。

2
Kenny

「npm install --save grunt-sass」を使用してgruntjsをインストールしようとしましたが、package.jsonは更新されません

上記のすべてを行いましたが、運はありませんでした。しかし面白いのは、「アンダースコア(npm install --save underscore)」というパッケージを追加しようとすると、息子が更新されることです。これがnamの問題なのかどうかはわかりません。スーパーユーザーとしてインストールしました。

1
Yoosaf Abdulla

これを解決できた唯一の方法は、npm install --save-dev moduleNameの代わりにnpm install moduleName --save-devを使用することでした。ただし、npm install moduleName --saveを使用するとうまくいきます。 --save-devを使用する場合にのみ、moduleNameの前に配置する必要があります。これが誰にも役立つことを願っています。

0
M.Z.

Package.jsonファイルのdevDependenciesから依存関係を削除し、-saveのみを使用して再インストールする

0
Rahul Makhija

Package.jsonに構文エラーがあり、これが原因でした。

0
Jason Dorell

私にとって問題は、メモ帳++からコマンドをコピーしたことで、そこに特別な文字が含まれているか、スペースであり、package.jsonを更新していませんでした。

例えば動作しませんでした; npm install --save debug pug jwt-simple method-override mongoose

インストール時に、コマンドラインをクリーンアップしてください。エンコーディングによっては特殊な文字が含まれている場合があるため、各モジュール間にスペースがあります。

私はこれにそれを修正したとき、それは働いた。

npm install --save debug pug jwt-simple method-override mongoose

また、コマンドの実行時にpackage.jsonがエディターで開かれないようにしてください。すべてのエディターがこれを適切に処理するわけではありません。

0
blamb

最初に設定を確認することもできます(npm config lsコマンドまたは~/.npmrcファイル)。私はlink=true

バージョン5.5.1では、-saveがアクティブな場合、このオプションは無視されるようです。 -save-dev-saveに置き換わると、リンクモードが再びアクティブになります。

だから私にとっては--saveオーバーライド--link順番に--save-dev

0
RockyRoad

を持っています .npmrcパッケージを取得するために社内で構築されたnpm apiを使用するファイル。私の問題は、会社のVPNに接続していなかったことです。

0
koolkat

同じ問題がありました。パッケージをインストールしたとき、package.jsonに表示されませんでした。そこで、package.jsonファイルを削除し、npm initを再度実行しました。その後は動作し、以前にインストールしたパッケージも依存関係にありました。

0
dilanSachi

Express Generatorを使用した後、-sを使用していくつかのパッケージをインストールしましたが、package.jsonには追加しませんでした。

その後、package.jsonを削除し、npm initを実行し、それらすべてを再インストールせずに追加しました

0
kochav

上記の回答に記載されているすべてのコマンドを試しましたが、npm-upgrade パッケージ。

npm i -g npm-upgradeその後npm-upgrade

0
Kanishk Gupta