如何使用带有不同模块的webpack 4拆分代码

时间:2019-03-06 15:30:40

标签: javascript webpack

我将项目从旧的grunt + requirejs配置迁移到Webpack 4。 这是我的文件结构:

- node_modules
- main.js
- app.js
- file1.js
- file2.js
- file3.js
- apps
   - login
     - login_app.js
     - login_view.js
     - login_controller.js
   - home
     - home_app.js
     - home_view.js
     - home_controller.js
   ...

main.js:

import APP from 'app.js';
import file3 from 'file3.js';

app.js:

import file1 from 'file1.js'
import file2 from 'file2.js'
import file3 from 'file3.js'

..
import some node_modules library
..


login_app.js:

import login_view.js
import login_controller.js
..
import some node_modules library
..

home_app.js:

import home_view.js
import home_controller.js
..
import some node_modules library
..

所以我对代码拆分webpack功能的想法是实现以下构建:

main.js(包含app.js + file1..3) vendor.js(包含node_modules库)

login.js(包含login_view + login_controller +(node_modules库仅在此处使用?这是严谨的)

home.js(包含home_view + home_controller +(仅在此处使用node_modules lib?这是对的)

我在网上进行了很多搜索,发现了这个答案:

How to code split one of two entries in Webpack 4?

因此,使用类似这样的内容:

cacheGroups: {
                vendors: {
                    name: 'vendors',
                    chunks: 'all',
                    enforce: true,
                    priority: 1,
                    test(module, chunks) {
                        const name = module.nameForCondition && module.nameForCondition();
                        return chunks.some(chunk => chunk.name === 'main' && /node_modules/.test(name));
                    }
                }
            }

我已经在代码中尝试过,但是无法实现正确的解决方案。有人可以告诉我什么是正确的方法吗?

0 个答案:

没有答案