Требование Webpack

Я пишу изоморфный хранилище ключей с веб-пакетом.

В настоящее время это мой подход к загрузке библиотек, который, очевидно, не работает, потому что webpack хочет разрешить оба require. Каков правильный подход?

var db = null;

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

Я знаю, что вы можете предоставить target веб-пакет. Но я понятия не имею, как это использовать.

Спасибо!

Ответ 1

Я думаю, resolve.alias будет работать для вас. Вы должны установить db модуль на level или gazel в зависимости от того, какую сборку вы создаете.

Ответ 2

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');
}