Webpack:是否可以重新构建热模块(而不重新加载)?

时间:2019-04-02 14:15:04

标签: webpack

例如,我有两个捆绑文件:A.jsB.js。但是只有B.js依赖于模块C

第一次构建时,A.jsB.js都必须构建。但是,当C模块得到更新时,下一次我运行build命令时,webpack应该只构建B.js,它会自动为我执行构建优化。这样我可以节省很多构建时间。

Webpack可以实现吗?如果可以,应该如何配置我的webpack?

1 个答案:

答案 0 :(得分:0)

这不是内置的Webpack功能,但是only-if-changed-webpack-plugin只是这样做。最小用例:

const path = require('path');
const OnlyIfChangedPlugin = require('only-if-changed-webpack-plugin');

const opts = {
  rootDir: process.cwd(),
  devBuild: process.env.NODE_ENV !== 'production',
};

module.exports = {
  output: {
    filename: 'bundle.js',
    path: path.join(opts.rootDir, 'build'),
    pathinfo: opts.devBuild,
  },
  plugins: [
    new OnlyIfChangedPlugin({
      cacheDirectory: path.join(opts.rootDir, 'tmp/cache'),
      cacheIdentifier: opts, // all variable opts/environment should be used in cache key
    })
  ],
};