Webpack 条件要求
Webpack conditional require
我正在用 webpack 写一个同构的键值存储。
这是目前我加载库的方法,这显然行不通,因为 webpack 想要解析这两个 require
。
什么是正确的方法?
var db = null;
if (typeof window === 'undefined') {
// node context
db = require('level');
} else {
// browser context
db = require('gazel');
}
我知道,你可以为 webpack 提供一个 target。
但是我不知道怎么用。
谢谢!
我认为 resolve.alias 适合您。您可以将 db
模块设置为指向 level
或 gazel
,具体取决于您正在创建的版本。
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');
}
我正在用 webpack 写一个同构的键值存储。
这是目前我加载库的方法,这显然行不通,因为 webpack 想要解析这两个 require
。
什么是正确的方法?
var db = null;
if (typeof window === 'undefined') {
// node context
db = require('level');
} else {
// browser context
db = require('gazel');
}
我知道,你可以为 webpack 提供一个 target。 但是我不知道怎么用。
谢谢!
我认为 resolve.alias 适合您。您可以将 db
模块设置为指向 level
或 gazel
,具体取决于您正在创建的版本。
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');
}