問題タブ [ng-packagr]
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.
angular - ng-packagr で生成されたパッケージを Angular CLI アプリと統合しています: モジュールが見つかりません
これを再現するリポジトリは次のとおりです: https://github.com/dragonflypl/ng-packagr-issue
- シンプルなパッケージを作成しました
logging
。npm run build
ライブラリを生成 + しますnpm pack
- 次に
fooGui
、Angular CLIで生成し、npm run consume
tgzをインストールすることでライブラリをインストールしました - スロー
npm run build
からのランニング:fooGui
./src/app/app.component.ngfactory.js のエラー モジュールが見つかりません: エラー: 'C:\XXX\dev\ng-packagr の 'logging/src/modules/logging/logger/index' を解決できません-issue\fooGui\src\app' resolve 'logging/src/modules/logging/logger/index' in 'C:\XXX\dev\ng-packagr-issue\fooGui\src\app' 解析されたリクエストはモジュールを使用しています説明ファイル: C:\XXX\dev\ng-packagr-issue\fooGui\package.json (相対パス: ./src/app) フィールド 'browser' には、説明ファイルを使用した後に有効なエイリアス構成が含まれていません: C: \XXX\dev\ng-packagr-issue\fooGui\package.json (相対パス: ./src/app) モジュール C:\XXX\dev\ng-packagr-issue\fooGui\src\app\node_modules として解決「存在しないか、ディレクトリ C:\XXX\dev\ng-packagr-issue\fooGui\src\node_modules ではありません」t が存在するか、ディレクトリ C:\XXX\dev\ng-packagr-issue\node_modules が存在しないか、ディレクトリではありません C:\XXX\dev\node_modules が存在しないか、ディレクトリ C:\ ではありませんXXX\node_modules が存在しないか、ディレクトリではありません C:\node_modules が存在しないか、説明ファイルを使用して C:\XXX\dev\ng-packagr-issue\fooGui\node_modules でモジュールを検索するディレクトリではありません: C :\XXX\dev\ng-packagr-issue\fooGui\package.json (相対パス: ./node_modules) フィールド 'browser' には、記述ファイルを使用した後、有効なエイリアス構成が含まれていません: C:\XXX\dev\ng -packagr-issue\fooGui\package.json (相対パス: ./node_modules) 記述ファイルを使用: C:\XXX\dev\ng-packagr-issue\fooGui\node_modules\logging\package.json (相対パス: ./src/modules/logging/logger/index) 拡張子なし フィールド 'browser' に有効なエイリアス構成が含まれていません C:\XXX\dev\ng-packagr-issue\fooGui\node_modules\logging\src\modules\logging\ logger\index が存在しません.ts フィールド 'browser' に有効なエイリアス構成 C:\XXX\dev\ng-packagr-issue\fooGui\node_modules\logging\src\modules\logging\logger\index が含まれていません。 ts が存在しません .js フィールド 'browser' に有効なエイリアス構成が含まれていません C:\XXX\dev\ng-packagr-issue\fooGui\node_modules\logging\src\modules\logging\logger\index.js が含まれていません'ディレクトリ C として存在しません:\XXX\dev\ng-packagr-issue\fooGui\node_modules\logging\src\modules\logging\logger\index が存在しません
私が何を間違えたのか、それともどこかのバグですか?
angular - ng-packagr は、外部モジュールに名前が指定されていませんでした
ng-packagr を使用して 1 つのプロジェクト @my/common-util をパッケージ化する場合、問題はありません。このクラスには、abstract-person.ts に AbstractPerson という抽象クラスが含まれています。
@my/common-impl という別のプロジェクトでは、AbstractPerson を拡張し、@my/common-util パッケージ名を使用してインポートする別の Person クラスが作成されました。ng-packagr を使用してパッケージ化すると、次のエラーが発生します -->
options.globals の外部モジュール '@my/common/abstract-person' に名前が指定されていません - 'abstractPerson' を推測しています
警告のようだったので、引き続き @my/common と @my/common-impl を別のプロジェクトに npm install しますが、 @my/common-impl から Person クラスを import すると以下のエラーが発生します
./node_modules/@my/common-impl/esm5/common-impl.js のエラー モジュールが見つかりません: エラー: 'C:\Data\me\ の '@my/common/abst ract-person' を解決できませんnode_modules\@my\common-impl\e sm5' resolve '@my/common/abstract-person' in 'C:\Data\me\node_modules\@my\common-impl\esm5' 解析されたリクエストは説明を使用するモジュールですファイル: C:\Data\me\node_modules\@my\common-impl\package.json (相対パス: ./esm5) フィールド 'browser' には、記述ファイルを使用した後、有効なエイリアス構成が含まれていません: C:\ Data\me\node_modules\@my\common-impl\package.json (相対パス: ./esm5) モジュールとして解決
外部、グローバル、package.json の umdModuleIds などをいくつか試しましたが (以下を参照)、どれもうまくいきませんでした。
これがpackage.jsonです
これを是正するには、さらに何が必要ですか?
node.js - npm packagr はアセットフォルダーをパックしません
OS:Windows10
Angular-CLI の使用
dist
私の最終目標は、実行後にフォルダー内に次のファイル構造を含むパッケージをセットアップすることですnpm run packagr
。
angular-cli.json
ドキュメントに従って、次の設定を行いました。
ドキュメントによると、これはassets/styles
私の src ディレクトリ内のフォルダーをターゲットにし、その中のすべてを取得してから、コピーとして dist に送信する必要があります。それはできません。私はこれを何度も繰り返しました。私が欲しいのは dist ディレクトリ内のスタイル フォルダーだけなので、実行npm pack
するとパッケージに含まれ、アップロードの準備が整います。
パッケージ.json