2016-05-12 69 views
0

如何强制webpack不解决节点模块中的require语句?如何不使用webpack解析需求

在下面的单元测试示例中,我想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 

回答

1

我想你可能会寻找externals

从文档:

外部材料:指定不应由webpack解析的依赖项, 但应该成为所生成的包的依赖项。依赖项的种类取决于output.libraryTarget。

1

您可以使用require.ensure在需要时异步加载它。这将帮助您在需要('chai')加载时,只要您的特定条件得到满足或未加载。

require.ensure

除此之外,从你的包中删除需要(“柴”),并在分割到一个单独的包去供应商捆绑 如:

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