Ein normaler einmaliger Build funktioniert einwandfrei. Wenn ich jedoch rollup -w
, scheint rpt2 Probleme zu haben, Quelldateien zu finden, wenn ich eine der tieferen Modulabhängigkeiten in einem der anderen Pakete bearbeite.
Dies ist mit einem Lerna-Monorepo, das Symlinks zu den In-Repo-Abhängigkeiten einrichtet.
Test-Repository: https://github.com/jrburke/jr-monorepo-rpt2
Ich möchte preserveSymlinks
da es in meinem realen Projekt zu Duplikaten von Modulen im endgültig erstellten Projekt führt, da mehrere Pakete im Repository gemeinsame Abhängigkeiten teilen. Ich habe eine Version mit preserveSymlinks
ausprobiert, und als letzten Ausweg könnte ich ein Dev-Setup konfigurieren, das preserveSymlinks
, aber eigenständige / erstmalige Builds funktionieren ohne, und ich möchte es behalten das Uhr-Setup ist das gleiche wie bei den normalen Builds.
Details zum Reproduzieren im obigen Beispiel-Repository.
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 der obersten Ebene:
{
"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": ["."]
}
Ich denke nicht, dass es relevant ist, aber es steht im Test-Repo.
Angehängt, aber auch im Test-Repo bei verbose-error.txt
:
Könnte mit #188 verwandt sein
Eine andere Problemumgehung besteht darin, die Typprüfung mit check: false
zu deaktivieren, was natürlich den Großteil der Funktionalität entfernt...
Ich habe das Problem, rollup-plugin-typescript2
und rollup-plugin-postcss
kombinieren. Wenn ich eine _css_-Datei (zB import * as style from ./mystyle.css
) importiere und das _watch_-Flag aktiviere, erhalte ich denselben Fehler.
Ich werde noch ein bisschen Debuggen versuchen, aber check: false
behebt das Problem tatsächlich.