gpt4 book ai didi

javascript - karma 和 RequireJS : avoid duplication in src and test RequireJS config

转载 作者:数据小太阳 更新时间:2023-10-29 04:44:19 27 4
gpt4 key购买 nike

例如,这个test-main.js还有这个main.js有重复的路径和垫片。对于大型项目,可能会有很多。我什至可以使用 grunt-bower-requirejs plugin将已安装的 Bower 组件添加到 main.js 中,但之后,我必须手动或通过程序将它们复制到 test-main.js。

是否有任何方便的方法来避免这种重复,例如,告诉 RequireJS 包含另一个配置文件?

最佳答案

我也讨厌重复信息。我通过在我的测试套件中使用一个调用 require.config 的 HTML 设置来解决这个问题。两次。

所以我的测试套件中的 HTML 首先加载 RequireJS,然后是通用配置,它位于一个名为 requirejs-config.js 的文件中:

<script type="text/javascript" src="lib/requirejs/require.js"></script>
<script type="text/javascript" src="requirejs-config.js"></script>

requirejs-config.js文件没什么特别的。这是一个简化版本:

require.config({
baseUrl: 'lib/',
paths: {
browser_test: '../../../browser_test',
jquery: 'external/jquery-1.10.2',
bootstrap: 'external/bootstrap/js/bootstrap.min',
// [...]
},
packages: [
{
name: "lodash",
location: "external/lodash"
}
],
shim: {
bootstrap: {
deps: ["jquery"],
exports: "jQuery.fn.popover",
},
// [...]
},
config: {
// [...]
},
enforceDefine: true
});

然后有一个<script>调用 require.config 的元素使用适用于测试环境的设置:

<script>
require.config({
paths: {
'mocha': '/node_modules/mocha',
'chai': '/node_modules/chai/chai'
},
shim: {
'mocha/mocha': {
exports: "mocha",
init: function () { this.mocha.setup('bdd'); return this.mocha; }
}
},
config: {
// [...]
}
});
</script>

('mocha/mocha' shim 看起来很有趣,但它是正确的。)

在这种特定情况下,第二次调用 require.config仅向 paths 添加新值, shimconfig但也可以覆盖之前的值。例如,我可以更改 'jquery' 的路径解析或更改 Bootstrap 的填充程序。

您可以看到我在我的测试套件中使用了 Mocha + Chai,但上面的解决方案实际上根本不是特定于 Mocha 的。

关于javascript - karma 和 RequireJS : avoid duplication in src and test RequireJS config,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21059855/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com