問題タブ [npm-lazy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
3210 参照

npm - 「npm install」がシュリンクラップの「解決済み」プロパティを使用するのはなぜですか

コンピューターに「npm_lazy」などのローカル npm ミラーをセットアップすることを検討しています。しかし、ローカルミラーではうまく機能しないnpm installようです。npm shrinkwrap

説明させてください。npm-shrinkwrap.jsonファイルがある場合、npm installコマンドは常に、shrinkwrap ファイルの"resolved"プロパティで指定された URL からパッケージを要求します。したがって、ローカル npm ミラーを で実行していてhttp://localhost:12345/も、それをレジストリとして使用するように npm を構成しても、ローカル ミラーからパッケージ モジュールを要求することはありません"resolved"( shrinkwrap ファイル内のプロパティがたまたま を指していない限りhttp://localhost:12345/) 。 .

基本的に、npm installnpm のレジストリ設定を無視し、shrinkwrap"resolved"プロパティに従います。

依存パッケージ名とバージョンで動的に構築する代わりにプロパティをnpm install使用する理由はありますか? "resolved"npm-shrinkwrap.json にこのフィールドがあるのはなぜですか?

それでは、私の問題に戻ります。npm_lazy をローカル npm ミラーとして使用したいと考えています。を指すようにすべての"resolved"URL を書き換えることができます。しかし、その場合、私のシュリンクラップ ファイルは移植性が低くなります。同僚のコンピューターで同じ npm_lazy サーバーが実行されていない限り、同僚は使用できません。npm-shrinkwrap.jsonhttp://localhost:12345/

透過的なミラーを作成するために、すべてのregistry.npmjs.orgトラフィックをにリダイレクトすることを検討しました。localhostしかし、それは難しすぎるでしょう -- HTTPS をサポートする必要があります。また、npm_lazy はどのようにして真のドメインにアクセスするのでしょうか? 変更される可能性がある IP アドレスで指定する必要があります。

ローカル コンピューターの NPM キャッシュをセットアップするために、他の誰かが同じことを試みましたか? しかし、私の主な質問は、なぜ npm が「解決済み」プロパティを使用するのですか? ありがとう。

0 投票する
1 に答える
183 参照

node.js - 起動時に npm_lazy を開始する

npm のローカルとして npm_lazy を使用したいと思います。

npm_lazy をインストールしましたが、すべて完璧に動作します。

を使用してサーバーを起動する

npm_lazy --config ~/custom_config/npm_lazy.config.js

動作します。

しかし、このコマンドをLinuxサーバーの起動に追加するにはどうすればよいですか。Ubuntu 14.04.3 LTS を実行しています。

私は試した:

vi /etc/init.d/npm_lazy

chmod ugo+x /etc/init.d/npm_lazy

npm_lazy

script.sh

最後に

update-rc.d npm_lazy defaults