Uma compilação única normal funciona bem. No entanto, ao usar rollup -w
, rpt2 parece ter problemas para encontrar arquivos de origem se eu editar uma das dependências de módulo mais profundas em um dos outros pacotes.
Isso ocorre com um monorepo do Lerna configurando links simbólicos para as dependências in-repo.
Repo de teste: https://github.com/jrburke/jr-monorepo-rpt2
Não quero usar preserveSymlinks
porque em meu projeto real, isso resulta em duplicatas de módulos no projeto final construído, já que vários pacotes no repo compartilham dependências comuns. Eu tentei uma versão usando preserveSymlinks
e, como último recurso, poderia configurar uma configuração de desenvolvimento que usa preserveSymlinks
, mas as compilações autônomas / iniciais funcionam sem ele e gostaria de manter a configuração do relógio da mesma forma que as compilações normais.
Detalhes para reproduzir no repositório de exemplo acima.
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 de nível superior:
{
"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": ["."]
}
Não acho que seja relevante, mas está no repositório de teste.
Em anexo, mas também em repositório de teste em verbose-error.txt
:
Pode estar relacionado a # 188
Outra solução alternativa é desativar a verificação de tipos com check: false
, é claro que isso remove a maioria das funcionalidades ...
Tenho o problema de combinar rollup-plugin-typescript2
e rollup-plugin-postcss
. Quando eu importo um arquivo _css_ (por exemplo, import * as style from ./mystyle.css
) e habilito o sinalizador _watch_, ocorre o mesmo erro.
Vou tentar depurar um pouco mais, mas de fato check: false
corrigirá o problema.