gpt4 book ai didi

node.js - Webpack + Typescript + watch 仅在重新编译时导致错误 TS2554

转载 作者:搜寻专家 更新时间:2023-10-30 20:53:05 24 4
gpt4 key购买 nike

涉及的软件:

  • 网页包 4.8.3
  • typescript 2.8.3
  • ts-loader 4.3.0

网络包配置:

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}`);

同样,如果我中止 watch 并从头开始构建,它工作得很好。这里有什么问题?

为了测试,我删除了 ng-annotate-loader;没有变化。
在将构建工具链从 Webpack 3 升级到 4 以及从 2.3.x 到 Typescript 的相关升级之后,这种情况开始发生。在旧版本中,build --watch 工作正常。

最佳答案

我认为问题与 webpack.NewWatchingPlugin(默认的监视插件)有关,但是如果您添加新的 webpack.OldWatchingPlugin,您可以强制 webpack 使用旧的文件监视逻辑() 插件。 OldWatchingPluginNewWatchingPlugin 更稳定。

webpack 可能无法正常工作的原因有多种:

  • 如果没有文件输出(具有不同的散列值),则可能是配置问题,而不是文件监视问题。
  • 没有足够的文件观察器会导致 Webpack 中的文件观察器不会认识到这些变化。

关于node.js - Webpack + Typescript + watch 仅在重新编译时导致错误 TS2554,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50352252/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com