17

我正在用 webpack 编写一个同构键值存储。

这是我目前加载库的方法,这显然行不通,因为 webpack 想要同时解析require. 什么是正确的方法?

var db = null;

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

我知道,你可以为webpack提供一个目标。但我不知道如何使用它。

谢谢!

4

2 回答 2

14

我认为resolve.alias会为你工作。您可以将db模块设置为指向levelgazel取决于您正在创建的构建。

于 2015-07-06T18:19:45.340 回答
11

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');
}
于 2016-04-22T01:51:13.373 回答