99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

Webpack thread-loader

2023-05-23 09:33 更新

運(yùn)行以下 loaderworker pool 中。

快速開始

npm install --save-dev thread-loader

使用時(shí),需將此 loader 放置在其他 loader 之前。放置在此 loader 之后的 loader 會(huì)在一個(gè)獨(dú)立的 worker 池中運(yùn)行。

在 worker 池中運(yùn)行的 loader 是受到限制的。例如:

  • 這些 loader 不能生成新的文件。
  • 這些 loader 不能使用自定義的 loader API(也就是說,不能通過插件來自定義)。
  • 這些 loader 無法獲取 webpack 的配置。

每個(gè) worker 都是一個(gè)獨(dú)立的 ?node.js? 進(jìn)程,其開銷大約為 600ms 左右。同時(shí)會(huì)限制跨進(jìn)程的數(shù)據(jù)交換。

請(qǐng)僅在耗時(shí)的操作中使用此 loader!

示例

webpack.config.js

module.exports = {
  module: {
    rules: [
      {
        test: /\.js$/,
        include: path.resolve('src'),
        use: [
          "thread-loader",
          // 耗時(shí)的 loader (例如 babel-loader)
        ],
      },
    ],
  },
};

with options

use: [
  {
    loader: "thread-loader",
    // 有同樣配置的 loader 會(huì)共享一個(gè) worker 池
    options: {
      // 產(chǎn)生的 worker 的數(shù)量,默認(rèn)是 (cpu 核心數(shù) - 1),或者,
      // 在 require('os').cpus() 是 undefined 時(shí)回退至 1
      workers: 2,

      // 一個(gè) worker 進(jìn)程中并行執(zhí)行工作的數(shù)量
      // 默認(rèn)為 20
      workerParallelJobs: 50,

      // 額外的 node.js 參數(shù)
      workerNodeArgs: ['--max-old-space-size=1024'],

      // 允許重新生成一個(gè)僵死的 work 池
      // 這個(gè)過程會(huì)降低整體編譯速度
      // 并且開發(fā)環(huán)境應(yīng)該設(shè)置為 false
      poolRespawn: false,

      // 閑置時(shí)定時(shí)刪除 worker 進(jìn)程
      // 默認(rèn)為 500(ms)
      // 可以設(shè)置為無窮大,這樣在監(jiān)視模式(--watch)下可以保持 worker 持續(xù)存在
      poolTimeout: 2000,

      // 池分配給 worker 的工作數(shù)量
      // 默認(rèn)為 200
      // 降低這個(gè)數(shù)值會(huì)降低總體的效率,但是會(huì)提升工作分布更均一
      poolParallelJobs: 50,

      // 池的名稱
      // 可以修改名稱來創(chuàng)建其余選項(xiàng)都一樣的池
      name: "my-pool"
    },
  },
  // 耗時(shí)的 loader(例如 babel-loader)
];

預(yù)警

可以通過預(yù)警 worker 池來防止啟動(dòng) worker 時(shí)的高延時(shí)。

這會(huì)啟動(dòng)池內(nèi)最大數(shù)量的 worker 并把指定的模塊加載到 ?node.js? 的模塊緩存中。

const threadLoader = require('thread-loader');

threadLoader.warmup(
  {
    // 池選項(xiàng),例如傳遞給 loader 選項(xiàng)
    // 必須匹配 loader 選項(xiàng)才能啟動(dòng)正確的池
  },
  [
    // 加載模塊
    // 可以是任意模塊,例如
    'babel-loader',
    'babel-preset-es2015',
    'sass-loader',
  ]
);

貢獻(xiàn)

如果還未閱讀貢獻(xiàn)指南,請(qǐng)抽時(shí)間進(jìn)行閱讀。

License

MIT


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)