私はしばらくの間 Angular 2 (typescript) を使っていましたが、私の質問があまりにもつまらなかった場合は非常に申し訳ありません :(
次のように最初のパッケージをnpmに公開しました
プロジェクト構造
lib
|--banana
|--b.js
|--b.d.ts
|--coconut
|--c.js
|--c.d.ts
src
|--banana
|--b.ts
|--coconut
|--c.ts
gulpfile.ts
package.json
tsconfig.json
typings.json
パッケージ.json
"name": "XXX",
"main": "lib/",
"typings": "lib/",
"files": [
"lib/"
]
tsconfig.json
{
"compilerOptions": {
"experimentalDecorators": true,
"module": "commonjs",
"declaration": true,
"outDir": "lib/",
"types": [
"core-js"
]
}
}
それを npm に正常に公開し、それを 1 つの angular-cli プロジェクトで使用します。
npm install my_package --save
問題は、消費プロジェクトでは、パッケージのクラスを絶対パス経由でしかインポートできないことです。
import {Banana} from './../../node_modules/my_package/lib/banana/b'
パッケージを公開する方法をいくつか変更してみましたが、まだ期待どおりに機能していません。
それで、パッケージを公開する方法またはパッケージを消費する方法で見逃した点を示すのを手伝ってください。
編集
次のようにインポートした場合:
import {Banana} from 'XXX';
次のエラーが表示されます。
ERROR in Error encountered resolving symbol values statically. Could not resolve XXX relative to /Users/john/Documents/workspace/consuming-npm/src/app/app.module.ts., resolving symbol AppModule in /Users/john/Documents/workspace/consuming-npm/src/app/app.module.ts, resolving symbol AppModule in /Users/john/Documents/workspace/consuming-npm/src/app/app.module.ts
ERROR in ./src/app/app.module.ts
Module build failed: Error: /Users/john/Documents/workspace/consuming-npm/src/app/app.module.ts (18,33): Cannot find module 'XXX'.)
問題は npm パッケージを公開する方法にあると思いますが、それがどこから来たのかはまだわかりません:(