問題タブ [npm-shrinkwrap]
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.
javascript - 新しく作成したノード モジュールを package.json に保存するにはどうすればよいですか?
ノードモジュールとして新しい機能を作成します。
もちろん、シュリンクラップすると、次のようなエラー メッセージが表示されます。
新しく作成された余分なパッケージを に保存する簡単な方法はありますpackage.json
か?
node.js - npm shinkwrap と git を使用して node_modules を追跡する
私は、ランチャーといくつかの自家製プラグインを備えたノード プロジェクトに参加しています。これらのプラグインはpackage.json
、git リポジトリ アドレスを使用して、ランチャーで依存関係としてマークされます。
私は最近npm shrinkwrap
、プラグインごとに使用されるコミットを完全に取得しようとしましたが、プラグインの開発者はこれを破ります。npm link
git リポジトリに使用しようとしましたが、追跡されshrinkwrap
なくなりました。
基本的に、作業できるプラグインのレポを複製し、正確な瞬間に依存関係のスナップショットを取得するにはどうすればよいでしょうか?
あなたが私に与えることができるリードをありがとう。
node.js - フォルダーの境界を越えてパッケージを共有する
次のパッケージ構造があるとします。
ここで、C の require(b) と D の require(b) は異なります (=== ではなく、一意のインスタンス)。これは、b を 1 レベル上に移動することで解決できます。
ここで、C と D が require(b) を要求すると、実際には同じオブジェクトが取得されます。ただし、次のレイアウトがあるとします。
ここで、Main の require(b) を 2.0.0 にするためにできるレイアウトはないと思いますが、c と d が同じ b を共有できるようにします。私は正しいですか?c と d の b を同じ場所にシンボリック リンクすることはできますが、その構造をシュリンク ラップやその他の形式で表現することはできません。
javascript - 開発中の NPM シュリンクラップ
npm install
とファイルの両方を持つプロジェクトを開発環境で実行するとどうpackage.json
なりnpm-shrinkwrap.json
ますか? シュリンクラップを無視して、すべてに使用package.json
しますか、それとも開発依存関係だけに使用しますか?
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 install
npm のレジストリ設定を無視し、shrinkwrap"resolved"
プロパティに従います。
依存パッケージ名とバージョンで動的に構築する代わりにプロパティをnpm install
使用する理由はありますか? "resolved"
npm-shrinkwrap.json にこのフィールドがあるのはなぜですか?
それでは、私の問題に戻ります。npm_lazy をローカル npm ミラーとして使用したいと考えています。を指すようにすべての"resolved"
URL を書き換えることができます。しかし、その場合、私のシュリンクラップ ファイルは移植性が低くなります。同僚のコンピューターで同じ npm_lazy サーバーが実行されていない限り、同僚は使用できません。npm-shrinkwrap.json
http://localhost:12345/
透過的なミラーを作成するために、すべてのregistry.npmjs.org
トラフィックをにリダイレクトすることを検討しました。localhost
しかし、それは難しすぎるでしょう -- HTTPS をサポートする必要があります。また、npm_lazy はどのようにして真のドメインにアクセスするのでしょうか? 変更される可能性がある IP アドレスで指定する必要があります。
ローカル コンピューターの NPM キャッシュをセットアップするために、他の誰かが同じことを試みましたか? しかし、私の主な質問は、なぜ npm が「解決済み」プロパティを使用するのですか? ありがとう。
proget - ProGet 経由で npm-shrinkwrap を使用する場合の ECONNRESET エラー
内部の ProGet サーバーを介してインストールされたシュリンクラップ パッケージを使用すると、ECONNRESET の問題が発生します。npm レジストリを通常の npm レジストリに構成し、それに基づいてパッケージをシュリンクラップすると、すべて正常にインストールされます。node_modulesを削除し、実行の合間にnpm cache cleanを実行して、ProGet からのダウンロードを強制します。興味深いことに、 npm-shrinkwrap.jsonにリストされている 1,000 以上のリソース リクエストはすべて、ファイル ダウンローダーに接続すると正しくダウンロードされます。
詳細フラグを指定してインストールすると、npm クライアントがレジストリ URL をhttp://<internal-url>/npm/npmから任意に変更して、一部の要求でnpm /npmを省略するように見える多数の 404 が表示されますが、なぜそれが起こるのか、それが関係しているかどうかはわかりません。
ProGet 3.8.6、npm 3.3.11 および 3.5.4 (2 台の開発者マシンでテストしても同じ結果)、およびノード 4.2.1 を使用します。