我想将一个模块发布到几个组件管理器系统:npmjs、bower 等......另外我还想创建可下载的构建,例如一个用于 requirejs 的 AMD 样式,一个用于 commonJS 样式,一个用于全局命名空间浏览器,为它们中的每一个缩小,等等......这些是 10 多个版本。
我目前有一个 AMD 版本,我使用 karma、jasmine 和 requirejs 以 amd 风格为它编写了单元测试。你有什么建议,如何为它们生成其他构建和测试?
我的意思是我无法决定我应该拥有什么作为转换的基础。每个输出包中都有一个公共部分,也有一个包相关部分。
AMD - requirejs(我不确定是否使用配置选项)
define(["module", "dependency"], function (module, dependency) {
var m = {
config: function (options){
//...
},
//...
//do something with the dependency
};
m.config(module.config()); //load config options set by require.config()
return m;
});
通用JS
var dependency = require("dependency");
module.exports = {
config: function (options){
//...
},
//...
//do something with the dependency
};
全球的
var m = (function (){
return {
config: function (options){
//...
},
//...
//do something with the dependency
};
})(dependency);
我不知道,我应该在每次测试之前开发通用代码并构建,还是应该开发其中一个包,对其进行测试,然后将其转换为其他构建?
我打算使用 gulp 来创建构建并在自动发布它们之前为它们中的每一个自动调用单元测试。哦,我也需要自动更改版本号。顺便提一句。是否有必要在构建过程之后调用单元测试,您怎么看?我只是想确定,没有发布错误代码......