在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ CommonsChunkPlugin中的minChunks參數(shù)疑惑

CommonsChunkPlugin中的minChunks參數(shù)疑惑

webpack配置如下:

{
    entry: {
        main: './src/main.js',
        first: './src/first.js',
        vendor: ['react','jquery']
    },
    output: {
        path: path.resolve(__dirname,'./dist'),
        filename: '[name].js'
    },
    plugins: [
        new webpack.optimize.CommonsChunkPlugin({
            name: 'vendor',
            filename: '[name].js',
            minChunks: function (module, count) {
                // any required modules inside node_modules are extracted to vendor
                return (
                    module.resource &&
                    /\.js$/.test(module.resource) &&
                    module.resource.indexOf(path.join(__dirname, '../node_modules')) === 0
                )
            },
        }),
    ]
}

我的疑惑在于:

  1. 依照上面的例子, minChunks函數(shù)的參數(shù)module和返回布爾值true或false各代表什么意思?
  2. 我打印出module.resource,里面包括了入口文件main和first及其引用到的自定義和第三方模塊,module.source有什么用呢?

問(wèn)題有點(diǎn)多,但個(gè)人嘗試了很多次,都沒(méi)辦法解開以上疑惑,還望賜教。

回答
編輯回答
我不懂

這么理解,CommonsChunkPlugin 是為了提取出公共的模塊,那么 minChunks 就是說(shuō)提取出的公共模塊必須(至少)在哪些 chunks 中。

在 webpack 中 chunk 會(huì)組成 bundle(bundle 就是最后輸出的文件)。一般兩者是一一對(duì)應(yīng)的關(guān)系,但也不一定,一些插件可以改變,比如這個(gè) CommonsChunkPlugin 。

模塊就是 import、require 的東西,一個(gè) chunk 里一般會(huì)有多個(gè)模塊。

可以給 minChunks 傳數(shù)字和數(shù)組,這個(gè)好理解。而傳函數(shù)的時(shí)候 webpack 會(huì)用它來(lái)檢驗(yàn)每個(gè)模塊。

module.resource 是指正在被處理的文件。

                return (
                    module.resource &&
                    /\.js$/.test(module.resource) &&
                    module.resource.indexOf(path.join(__dirname, '../node_modules')) === 0
                )

就是“有正在處理文件” + “這個(gè)文件是 .js 后綴” + “這個(gè)文件是在 node_modules 中”

2017年10月31日 18:54