Программное обеспечение задействовано:
- webpack 4.8.3
- машинопись 2.8.3
- ts-loader 4.3.0
Конфигурация Webpack:
rules: [
{
test: /\.ts(x?)$/,
exclude: /node_modules/,
use: ['ng-annotate-loader', 'ts-loader']
},
...
]
Это компилирует мой проект отлично на одной сборке (webpack --mode development
).
Тем не менее, он начинает выдавать ошибки при сборке в режиме просмотра:
$ webpack --progress --watch --mode development
Webpack is watching the files…
Hash: e8f3fc158b2b6feaad07
Version: webpack 4.8.3
Time: 75713ms
Built at: 05/15/2018 3:25:27 PM
Asset Size Chunks Chunk Names
...
(Сборка в порядке. Теперь я меняю один файл, и он перестраивает:)
[./ts/foo/foo.ts] 3.82 KiB {foo} [built] [1 error]
[./ts/foo/controllers/bar.ts] 3.8 KiB {baz} {foo} [built]
[./ts/foo/baz.ts] 4.21 KiB {baz} [built] [1 error]
+ 668 hidden modules
ERROR in .../ts/foo/foo.ts
./ts/foo/foo.ts
[tsl] ERROR in .../ts/foo/foo.ts(84,9)
TS2554: Expected 0 arguments, but got 1.
ERROR in .../ts/foo/baz.ts
./ts/foo/baz.ts
[tsl] ERROR in .../ts/foo/baz.ts(105,9)
TS2554: Expected 0 arguments, but got 1.
Строки, на которые он ссылается, - это все строки, содержащие console.log
вызовов, например ::1010*
console.log(`Using locale ${locale}`);
Опять же, если я прерву часы и соберу их с нуля, они будут работать просто отлично. В чем здесь проблема?
Для тестирования я удалил ng-annotate-loader
; без изменений.
Это начало происходить после обновления набора инструментов сборки из Webpack 3 до 4 с соответствующими обновлениями до Typescript с 2.3.x. В старых версиях build --watch
отлично работает.