2017-06-19 8 views
8

を使用せずに、フォルダをインストールし、私はadvice the npm documentation wrote aboutを使用することができます。NPM 5私のノードのライブラリを公開する前にシンボリックリンク

、インストールローカルをテストいくつかの他のフォルダに移動し、実行するには:

CD。 ./some-other-folder

NPMは、インストール、それが生産するとして、私は何の問題もなかった

前のNPMのバージョン5に../my-package私が期待していたもの、つまり私が出版するものの出力を持つフォルダ。

NPMのドキュメントで説明されているようしかし、NPM 5を使用して、それが今、私の地元のプロジェクトにシンボリックリンクを作成します。

NPMをインストールします。

でシンボリックリンクとしてディレクトリにパッケージをインストールします。現在 プロジェクトその依存関係はリンクされる前にインストールされます。 がプロジェクトのルートの内側にある場合、他のタイプの 依存関係の場合と同様に、その依存関係は がトップレベルのnode_modulesに持ち込まれる可能性があります。

"古い"方法でローカルプロジェクトをインストールするにはどうすればよいですか?または、私の図書館が正しいかどうかを確認する新しい方法がありますか?

ありがとうございます。 (-インストールローカルパッケージにより示唆されるように)使用npm pack + npm install

+1

[https://www.npmjs.com/package/install-local](https://www.npmjs.com/package/install-local)npmモジュールを使用できます。 –

+0

ありがとう@HardikModha :) –

+0

私はinstall-localを使ってみましたが、シンボリックリンクも作成しましたので、@ HardikModhaのソリューションは100%動作しません。また、ローカル依存関係の依存関係をインストールしないという望ましくない副作用もあります。 – Severun

答えて

5

npm pack <path-to-local-package> 
npm install <package-version.tgz> 

は、これが効果的node_modulesに、ローカルパッケージをコピーします。 これは、プロダクション関連のファイル(package.jsonのfilesセクションにリストされているファイル)のみをパッケージ化することに注意してください。したがって、パッケージ独自のディレクトリの下にテストアプリにインストールすることができます。このような何か:

my-package 
    package.json 
    test 
    test-app 
     package.json 
     node_modules 
     my-package 

test dirは私のパッケージ/ package.jsonで filesに含まれていないと仮定すると。

これは、npm 5以前のバージョンと同じように動作します。

+0

良い方法がありますか?私のセットアップでは、私のレポの同じレベルのすべてのパッケージを持っています。私は、mainpackageディレクトリにnpm install --save ../otherpackageを実行して、依存関係を指定します。 ../otherpackageをmainpackage/node_modules/otherpackageにコピーする前に、../../otherpackageを指すその場所にシンボリックリンクを作成します。私の問題は、mainpackage/node_modulesにシンボリックリンクがあると、ENOSPCエラーのnodemonを吹き飛ばすということです。 packを使用してパッケージを作成しなければならない場合、npmがtgzファイルをインストールすると、自動デプロイメントに問題が発生します。 – Severun

+0

これを試してみると、otherpackageは../yetanotherpackageにローカル依存関係にあるため、動作しません。私は、 'パッケージからパッケージをインストールできませんでした'というエラーメッセージが表示されます。パッケージにはpackage.jsonファイルが含まれていません。 – Severun

関連する問題