問題タブ [npm-link]

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 に答える
152 参照

angular - 1.2.8 から 1.3.0 への CLI アップグレード後に Angular 5 が壊れる

以前は Angular CLI 1.2.8 で実行されていた Angular 5 アプリがあり、すべてがうまく機能していました。NullInjectorError: No provider for Http!1.3 へのアップグレード後 (1.5.4 への途中)、 localhost:4200 にアクセスしたときに使用している外部 npm リンク ライブラリに問題があるようです。

HttpModule を shared-lib モジュールに追加すると、エラーはなくなりますが、追加のプロバイダー エラーが発生します。shared-lib モジュールではなく、以前と同じように、shared-lib がメイン アプリのモジュールを使用することを期待しています。この例では、shared-lib には HttpModule に依存する angular サービスがありますが、shard-lib は HttpModule をインポートしません。私が使用しているメイン プロジェクトは、HttpModule をインポートします。

私のtsconfig.json:

私の tsconfig.app.json:

更新:共有ライブラリ node_modules の @angular フォルダーを削除した後、プロジェクトが機能することがわかりました。tsconfig.json 内のオブジェクトのパスが、Angular の使用をプロジェクトの node_modules のみにオーバーライドしない理由がわかりません。

0 投票する
3 に答える
4775 参照

javascript - npm リンクの使用中に Webpack で eslint エラーが発生する

TypeScript ライブラリに依存する JavaScript パッケージが 1 つあるマルチパッケージ プロジェクトをセットアップしました。最初に Sinopia をインストールし、変更を加えるたびにライブラリを再インストールしていました。そしたら開発しやすいなと見npm linkて思ったんです。残念ながら、(を使用してnpm link ../typescript-package) ライブラリをリンクしてビルドすると、エラーが発生します。

これらは別々のパッケージであるため、Webpack がこのパッケージに eslint を適用しようとしている理由がよくわかりません。これが私のwebpack.common.jsファイルです(マージを使用し、開発と製品の構成は問題になりません):

必要に応じて、他の構成ファイルまたは package.json ファイルも提供できます。

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

node.js - babelで「npm link」を処理するには? 予期しないトークン エラーの取得

親レポ(A)で使用npm linkして、子レポ(B)をリンクしています。

通常のnpm linkように動作しますが、レポ A はコードをトランスパイルするためにバベルを使用しており、node_modules依存関係またはシンボリック リンクを無視しているようです。

Repo B にスプレッド オペレーターがあり、次のエラーが発生します。

面白いことに、ノード バージョン 9.4.0 を使用しています。これは、これをネイティブにサポートする必要があります。

package.jsonの依存関係:

私の.babelrc

0 投票する
3 に答える
290 参照

npm - ローカル プロジェクトの「npm install」での予期しない動作

シナリオ

  • 私は使っているnpm 5.8.0
  • 私はとを持っていProjectAますProjectB
  • ProjectBの依存関係ですProjectA
  • 両方のプロジェクトがバンドルされ、Webpack 経由で実行されます (必要に応じて構成を提供できます)。

開発目的で、の package.json を 経由で参照ProjectBしています。基本的に必要なファイルは、Webpack の出力であるフォルダーにあるだけです。ProjectA"projectB": "file:../projectB"lib

問題

上記の構成でこの依存関係をインストールすると、npm は -folder 全体ProjectBを node_modules にインストールします。すべてprojectBの node_modules、構成ファイル、src-folder などが含まれます。

これが期待される動作ではないという事実は別として、これはエラーにつながります。たとえば、インストールされた @types の一部は、重複していると見なされるため、エラーをスローします。ProjectAと からの@types と他のパッケージはProjectB「衝突」しているようです。これらのパッケージは"dependencies"、両方ProjectAProjectBほとんどのように参照されます。

私が試したこと

npm リンク

npm リンクを使用すると、同じ (上記を参照) 動作が表示されます。フォルダ全体がProjectAの node_modules にインストールされます。

npm パック

私が実際にファイルを持っていることが重要かもしれません. そのため、ファイルを使用すると生成されます。その後、すべてを介してインストールすると、正常に動作します。-file を考慮に入れていると思います。.npmignoreProjectBnpm packprojectB.tgzProjectB"projectB": "file:../projectB.tgz"npm pack.npmignore

このソリューションに関する私の問題はProjectB、変更が適用されるたびにビルドする必要があるだけでなく、それもビルドする必要があるnpm packことです。

ProjectBの node_modulesを削除

これは最もばかげた回避策だと思います。ProjectBvia を再度参照し"projectB": "file:../projectB"、ビルド後に node_modules を削除すると、インストール後に表示されません。したがって、これ以上例外は発生しません。

ProjectB-folder全体がまだインストールされているため、これは有効な解決策ではないと思います。

質問

ここでのベストプラクティスは何ですか? ローカルソースからインストールするための合理的なコンスタレーションは何ProjectAですか?ProjectBProjectB