使用webpack时如何解决需求

时间:2016-05-12 07:43:32

标签: javascript webpack

如何强制webpack不解析节点模块中的require语句?

在以下单元测试示例中,我希望webpack解析require('./element.js'),但只是跳过require('chai')

如何做到这一点?

index.js:

'use strict';

const assert = require('chai').assert;
const element = require('./element.js');

describe('element.create', function () {
    jsdom();

    it('creates a div', function () {
        var div = document.createElement(element.create());
        assert.strictEqual(div.nodeName, 'DIV');
    });
});

执行命令

webpack index.js index-bundle.js
mocha index-bundle.js

2 个答案:

答案 0 :(得分:1)

我想你可能正在寻找externals

来自文档:

  

外部:指定webpack不应解析的依赖项,   但应该成为结果包的依赖关系。那种   依赖性取决于output.libraryTarget。

答案 1 :(得分:1)

您可以使用 require.ensure 在需要时异步加载。这可以帮助您在满足或不加载特定条件时加载 require(' chai')

require.ensure

除了从您的捆绑包中删除require(' chai')并拆分为单独的捆绑包之外,请转到供应商捆绑包 例如:

entry: {
    app: 'entry.js',
    vendor: ['jquery', 'jquery.plugin1']
}