Webpack conditionnelle exigent

voix
12

J'écris un isomorphe Key Value Store avec webpack.

C'est actuellement mon approche pour charger les bibliothèques, ce qui ne fonctionne évidemment pas, parce que webpack veut résoudre à la fois require. Ce qui est la bonne approche?

var db = null;

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

Je sais que vous pouvez fournir une cible à webpack. Mais je ne sais pas comment l' utiliser.

Merci!

Créé 06/07/2015 à 14:39
utilisateur
Dans d'autres langues...                            


2 réponses

voix
13

Je pense que resolve.alias travailleraient pour vous. Vous définiriez dbmodule pointer levelou gazelselon ce que vous construisez vous créez.

Créé 06/07/2015 à 17:19
source utilisateur

voix
8

webpack.config.js

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

vos-universal.js

var db = null;
if (!process.env.BROWSER) {
    // node context
    db = require('level');
} else {
    // browser context
    db = require('gazel');
}
Créé 22/04/2016 à 00:51
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more