thread-loader

来源:5-5 WebpackDevServer 解决单页面应用路由问题

诺巴蒂

2021-12-13

老师您看下这么配置有么有问题,别的地方的一个配置?

我有一点不太明白的是,worker: os.cpus().length - 1 ,为什么 thread-loader 要留一个 woker 给 fork-ts-checker-webpack-plugin (ts 和 js 的打包是并行的吗?)

如果它们(js 和 ts)打包执行是并行的,那么是不是也应该留一些 worker 给 ts-loader 的 happyPack

还有 ts-loader 开启 happyPack 后,还可以继续用 thread-loader 吗?,如果开启,进程会不够用,冲突吗?

对于 js 的优化

{
          test: /\.jsx?$/,
          use: [
            'cache-loader',
            {
              loader: 'thread-loader',
              options: {
                worker: os.cpus().length - 1,
              },
            },
            {
              loader: 'babel-loader',
              ...
}

对于 ts 的优化

{
          test: /\.tsx?/,
          use: [
             'cache-loader',
            {
              loader: 'ts-loader',
              options: {
                happyPackMode: true,
                transpileOnly: true,
              },
            },
          ],
        },

...
plugins: [
	new ForkTsCheckerWebpackPlugin({
        checkSyntacticErrors: true,
        async: false,
      }),
]
写回答

1回答

Dell

2021-12-13

fork-ts-checker-webpack-plugin 这个 loader 是串联 ts 检测的 loader,必须预留一个 woker 给其使用。其他的 loader,根据你的 cpu 数量来分配 worker,多了就每人一个,少了就共享

0
2
诺巴蒂
好像 thread-loader 配置相同用的是同一个进程池,那如果我的 ts-loader 和 js-loader 都用了 thread-loader,会不会出现 ts-loader 把所有进程抢占,js-loader 无法执行的情况
2021-12-14
共2条回复

从基础到实战 手把手带你掌握新版Webpack4.0

知识点+项目实例+原理讲解 全方位解析Webpack4新版本

3627 学习 · 1291 问题

查看课程