我试图编写一个在node.js和浏览器中都有效的库。此代码使用window.fetch
,因此我需要在服务器上使用polyfill。我想写这样的代码:
'use strict'
let fetch
if (ISNODE) {
fetch = require('node-fetch')
} else {
fetch = window.fetch
}
exports.get = params => {
return window.fetch() // and so forth
}
在webpack中,它应该删除ISNODE
树,以便它根本不会尝试require('node-fetch')
。
window.fetch
成为全球性的。
答案 0 :(得分:0)
您希望使用webpack的Define插件来定义常量,然后使用Uglify插件(或类似的东西)来消除死/无法访问的代码。
使用Define插件,为构建中的环境定义“常量”变量,如IS_SERVER = true
。在您的条件中,检查该常量。请注意,这仅在检查具有布尔值的变量时有效,因此它会理解IS_SERVER = true
,但不会理解APP_ENV = 'server'
。