0

我们的 Ember 应用程序是在 2.8 版本中开发的,我们遵循 POD 结构。

我们正在生成两个不同的构建,如下所示

1)对于我们的开发服务器:代码没有变化,只需构建

2) 对于我们的测试服务器:删除 HBS 中的一个部分,并从 router.js 中删除一个路由,然后构建

我们使用在 package.json 中配置的“ npm run-scripts build ”进行构建,如下所示

"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"
  },
4

1 回答 1

0

您只想禁用某个部分还是需要其从构建中删除?

如果您只想禁用某些东西,这很容易:

首先,您可以在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');
}

...

但是,如果您想实际删除一些代码,您可以为此编写自己的插件,用trueor替换一些变量false。然后缩小器将删除代码。

于 2020-06-19T10:23:16.203 回答