Webpack条件要求

时间:2015-07-06 15:39:13

标签: javascript webpack leveldb isomorphic-javascript

我正在用webpack写一个同构的Key Value Store。

这是我目前加载库的方法,这显然不起作用,因为webpack想解决require。 什么是正确的方法?

var db = null;

if (typeof window === 'undefined') {
    // node context
    db = require('level');
} else {
    // browser context
    db = require('gazel');
}

我知道,您可以为webpack提供target。 但我不知道如何使用它。

谢谢!

2 个答案:

答案 0 :(得分:14)

我认为resolve.alias会对你有用。您可以将db模块设置为指向levelgazel,具体取决于您要创建的版本。

答案 1 :(得分:9)

webpack.config.js

module.exports = {
plugins: [
    new webpack.DefinePlugin({
        "process.env": {
            BROWSER: JSON.stringify(true)
        }
    })
]}

您-universal.js

var db = null;
if (!process.env.BROWSER) {
    // node context
    db = require('level');
} else {
    // browser context
    db = require('gazel');
}