web-dev-qa-db-ja.com

npm-インストールされたパッケージを依存関係として保存する

最初にnpm install $packageを設定せずに、package.jsonを介していくつかのパッケージをインストールしました。ここで、package.jsonファイルを作成しますが、インストールされているすべてのパッケージを依存関係として保持します。 npm initを実行するだけではこのオプションは提供されませんが、これを自動的に実現できますか?

34
doque

2016年1月更新

npmはすぐにこれをサポートします。 npmバージョン.5.2があります。

node_modulesフォルダーとnderscoreがインストールされているだけです。

npm init --yes

その後:

cat package.json

Package.jsonに含まれる:

"dependencies": {
    "underscore": "^1.8.3"
  },
34
arcseldon

PDATE: npm v3の起動により、このトリックはpackage.jsonファイルに多くの不要なエントリを作成します。 @ sunny-mittalが指摘したように、モジュールの依存関係が平坦化されたためです。

私の知る限り、npmはそれをサポートしていません。 --saveを各パッケージに渡して、各パッケージを再インストールする必要があります。

ただし、Unixベースのシステムを使用している場合は、回避策があります。既に作成されたpackage.jsonファイル(前述のnpm init)を使用して、プロジェクトのルートフォルダーから、次を実行します。

npm install $(ls node_modules/) --save

パッケージを再インストールし、package.jsondependenciesとして保存します。

25

NPM以降node_modulesは現在フラットであり、@ Rodrigoの回答者はそれをうまく処理していません。

これは私が一緒に編んだものです。

npm list --depth=0 | sed "1d" | sed -E "s/^[\`+-]+\s//" | sed -E "s/@(.*)$//"

これは本質的にls node_modules前にやった。

ワンライナーでインストール済みを保存します。

npm install $(npm ls | sed "1d" | sed -E "s/^[\`+-]+\s//" | sed -E "s/@(.*)$//") --save

私は使っています

$ npm --version 
3.5.3

このようなリスト。

$ npm list --depth=0
[email protected] /home/victor/x
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
`-- [email protected]
3

pkg-save というモジュールを作成しました。
npmバージョンが「2.x.x」の場合、試してみることができます。
npm v3でテストしていないので、npm v3で有用かどうかわかりません。

2
Sinalvee