2015-11-20 3 views
6

「npm install」を実行しているときに、別のpackage.jsonを使用するようにnpmに指示するにはどうすればよいですか?npm install:package.jsonを指定しますか?

私が必要としているのはnpm install -f packages-win32.jsonですか、同じことを達成するためのトリックや別のアプローチがありますか?

npmモジュールのすべてがクロスプラットフォームではないため、プラットフォームごとに別のパッケージを使用したいと考えています。

+1

すべてのプラットフォームおよびコード内にすべての依存関係をインストールし、プラットフォームに基づいてそれらの依存関係を要求できます。もう1つのオプションは、[This Example](http://stackoverflow.com/questions/27722576/can-i-specify-optional-module-dependencies-in-npm-package-json)のようなコードの中にそれらをインストールすることです。または、dev依存関係を使用する。 – Ziki

+1

私は最もクリーンなアプローチは、パッケージを使用するロジックを含むnpmにパッケージを公開すること、またはプラットフォームに基づいて他のパッケージを使用することだと思います。つまり、package.jsonファイルの両方を保存し、プラットフォームに基づいて正しい名前を変更するソースコントロールフックを使用するだけです。 –

+2

「[package.json」よりnpmに別のファイル名を使用](http://stackoverflow.com/questions/25991082/use-different-filename-for-npm-than-package-json) – ishandutta2007

答えて

1

異なるpackage.jsonファイルを指定することはできません。仕様は、文字通りpackage.jsonという名前のファイルのみです。

はあなたがいずれかのOSが

try { 
    thing = require('thing'); 
} 
catch(error) { 
    thing = require('other'); 
} 

でそれらを試してみる上でのみ動作するパッケージといくつかの問題を持っている場合も経由でOSを嗅ぎ分けることができます。

const _isWin = /^win/.test(process.platform); 

それともドン君場合os.platform()を使用しますノードをサポートする必要があります< = 5 ...

多分それは役に立ちますか?