ember.js 如何在进行ember生产构建时隐藏.hbs和.js中的节

hjzp0vay  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(167)

我们的Ember应用程序是在2.8版本中开发的,我们遵循POD结构。
我们正在生成两个不同的版本,如下所示
1)对于我们的开发服务器:无需更改代码,只需进行构建
2)对于我们的测试服务器:在HBS中删除一个部分,并从router.js中删除一个路由,然后进行构建
我们使用“npm run-scripts build”进行构建,它在我们的package.json中配置如下

"scripts": {
    "build": "ember build",
    "start": "ember server",
    "test" : "ember test"
  },

我想知道在ember 2.8v我可以有一个条件写删除部分的基础上建立。
例如,如果我给予npm run-scripts buildDev,它将执行常规构建
如果我给予npm run-scripts buildTest,它将删除部分并给出一个构建
但在package.json中,这两个配置如下所示

"scripts": {
    "build"    : "ember build",
    "buildDev" : "ember build --environment=production",
    "buildTest": "ember build --environment=production",
    "start": "ember server",
    "test" : "ember test"
  },
w46czmvw

w46czmvw1#

您是只想 * 禁用 * 某个部分,还是需要将其从构建中 * 移除 *?
如果您只想禁用某些功能,这非常简单:
首先你可以在你的config/environment.js中使用环境变量。

if(process.env.DEV_BUILD) {
  ENV.disableSomething = true;
}

在您的package.json中,您可以执行以下操作:

"build": "cross-env DEV_BUILD=1 ember build",

这使用cross-env来设置windows和 *nix系统中的env变量。
然后,您可以导入配置并使用它:

import ENV from 'hss/config/environment';

...

if(!ENV.disableSomething) {
  this.route('foo');
}

...

然而,如果你真的想删除一些代码,你可以为此编写自己的插件,用truefalse替换一些变量。然后迷你控件将删除代码。

相关问题