通常のワンタイムビルドは正常に機能します。 ただし、 rollup -w
を使用している場合、他のパッケージの1つでより深いモジュール依存関係の1つを編集すると、rpt2でソースファイルを見つけるのに問題があるようです。
これは、Lernamonorepoがリポジトリ内の依存関係へのシンボリックリンクを設定する場合です。
テストリポジトリ: https :
実際のプロジェクトでは、リポジトリ内の複数のパッケージが共通の依存関係を共有しているため、最終的にビルドされたプロジェクトでモジュールが重複するため、 preserveSymlinks
を使用したくありません。 preserveSymlinks
を使用したバージョンを試したので、最後の手段としてpreserveSymlinks
を使用する開発セットアップを構成できましたが、スタンドアロン/初回ビルドはそれがなくても機能します。時計のセットアップは通常のビルドと同じです。
上記のレポの例で再現する詳細。
import commonjs from '@rollup/plugin-commonjs';
import resolve from '@rollup/plugin-node-resolve';
import typescript from 'rollup-plugin-typescript2';
export default {
input: 'src/index.ts',
output: {
file: 'dist/jr-player.js',
format: 'iife',
name: 'jrPlayer',
exports: 'named'
},
watch: {
include: ['src/**', '../jr-lib/src/**', '../jr-auth/src/**']
},
plugins: [
typescript({
include: ['src/**/*.ts+(|x)', '../jr-lib/**/*.ts+(|x)', '../jr-auth/**/*.ts+(|x)'],
verbosity: 3
}),
resolve(),
commonjs()
]
};
トップレベルのtsconfig.json:
{
"compilerOptions": {
"moduleResolution": "node",
"module": "es2015",
"lib": [
"es2015",
"es2016",
"es2017",
"dom"
],
"strict": true,
"sourceMap": true,
"declaration": true,
"allowSyntheticDefaultImports": true,
"downlevelIteration": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"noImplicitAny": false,
"esModuleInterop": true,
"removeComments": true,
"resolveJsonModule": true,
"skipLibCheck": true
}
}
packages/jr-player/tsconfig.json
:
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"target": "es5",
"declarationDir": "lib",
"outDir": "lib"
},
"include": ["."]
}
関連性はないと思いますが、テストリポジトリにあります。
添付されていますが、 verbose-error.txt
テストリポジトリにもあります:
#188に関連している可能性があります
別の回避策は、 check: false
でタイプチェックを無効にすることです。もちろん、これにより機能の大部分が削除されます...
rollup-plugin-typescript2
とrollup-plugin-postcss
組み合わせに問題があります。 _css_ファイル(例: import * as style from ./mystyle.css
)をインポートし、_watch_フラグを有効にすると、同じエラーが発生します。
もう少しデバッグを試みますが、実際にcheck: false
問題が修正されます。