你如何在webpack中隐藏代码而不是node.js

时间:2015-12-12 22:35:41

标签: node.js webpack babeljs

我试图编写一个在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成为全球性的。

1 个答案:

答案 0 :(得分:0)

您希望使用webpack的Define插件来定义常量,然后使用Uglify插件(或类似的东西)来消除死/无法访问的代码。

使用Define插件,为构建中的环境定义“常量”变量,如IS_SERVER = true。在您的条件中,检查该常量。请注意,这仅在检查具有布尔值的变量时有效,因此它会理解IS_SERVER = true,但不会理解APP_ENV = 'server'