2016-05-12 29 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'] 
}