Webpack condicional requieren

votos
12

Estoy escribiendo un valor de clave tienda isomorfo con webpack.

Esta es actualmente mi enfoque para cargar las bibliotecas, lo que obviamente no funciona, porque webpack quiere resolver tanto require. ¿Cuál es el enfoque correcto?

var db = null;

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

Yo sé, que puede proporcionar un objetivo a webpack. Pero no tengo ni idea de cómo usar eso.

¡Gracias!

Publicado el 06/07/2015 a las 14:39
por usuario
En otros idiomas...                            


2 respuestas

votos
13

Creo resolve.alias trabajarían para usted. Se podría establecer dbmódulo para señalar levelo gazeldependiendo de lo que construye que está creando.

Respondida el 06/07/2015 a las 17:19
fuente por usuario

votos
8

webpack.config.js

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

su-universal.js

var db = null;
if (!process.env.BROWSER) {
    // node context
    db = require('level');
} else {
    // browser context
    db = require('gazel');
}
Respondida el 21/04/2016 a las 21:51
fuente por usuario

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