涉及的软件:
Webpack配置:
javac.exe
这会在单个构建(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
同样,如果我中止手表并从头开始构建,它可以正常工作。这有什么问题?
为了测试,我删除了console.log(`Using locale ${locale}`);
;没有变化。
这是在将构建工具链从Webpack 3升级到4并从2.3.x升级到Typescript后开始发生的。在旧版本ng-annotate-loader
中工作正常。
答案 0 :(得分:0)
我认为问题与webpack.NewWatchingPlugin
(默认观看插件)有关,但如果您添加新的webpack.OldWatchingPlugin()
插件,则可以强制webpack使用旧文件观看逻辑。 OldWatchingPlugin
比NewWatchingPlugin
更稳定。
webpack可能无法正常工作的原因有多种: