javascript:有条件地包含测试文件

时间:2018-02-23 12:40:58

标签: javascript webpack

我继承了一个webapp项目,该项目是一个单独的html页面,其中包含导入主app.js的JQuery +额外javascript文件。 webapp旨在嵌入我们的主应用程序中。

webapp通过webpack配置分发,该配置从所有javascript文件构建bundle.js,并根据主应用程序的要求单独添加html和css文件。

所有这些都很有效,除了为了测试webapp独立,我们在app.js中包含了testdata。

import td from ./testdata.js

if ([we are in the main application]) {
   // do whatever necessary to start the webapp
}
else {
  // standalone
  let testdata = td.getTestdata();
  // start webapp
}

在生产版本中,我想阻止testdata与bundle.js捆绑在一起。

我曾尝试在else子句中导入testdata.js,但这会导致错误。

我试图用空的覆盖testdata.js,但这需要在webpack配置中完成,我找不到添加' pre bundle'动作。

处理此问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

为webapp创建一个入口点,为测试创建另一个入口点。通过这种方式,您将不需要这种情况。

app.js

import app from ./bundle.js
// do whatever necessary to start the webapp

test.js

import app from ./bundle.js
import td from ./testdata.js

let testdata = td.getTestdata();
// app things