我正在用webpack写一个同构的Key Value Store。
这是我目前加载库的方法,这显然不起作用,因为webpack想解决require
。
什么是正确的方法?
var db = null;
if (typeof window === 'undefined') {
// node context
db = require('level');
} else {
// browser context
db = require('gazel');
}
我知道,您可以为webpack提供target。 但我不知道如何使用它。
谢谢!
答案 0 :(得分:14)
我认为resolve.alias会对你有用。您可以将db
模块设置为指向level
或gazel
,具体取决于您要创建的版本。
答案 1 :(得分:9)
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');
}