0

npmjs、bower などのいくつかのコンポーネント マネージャー システムにモジュールを公開したいです。さらに、ダウンロード可能なビルドも作成したいと考えています。たとえば、requirejs 用の AMD スタイル、commonJS スタイルの 1 つ、ブラウザー、それぞれの縮小など... これらは 10 以上のビルドです。

私は現在、単一の AMD ビルドを持っており、カルマ、ジャスミン、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;
});

commonJS

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);

よくわかりませんが、すべてのテストの前に共通コードを開発してビルドする必要がありますか、それともパッケージの 1 つを開発してテストし、それから他のビルドへの変換を記述する必要がありますか?

ビルドを作成するために gulp を使用し、それらを自動的に公開する前に、それぞれのユニット テストを自動的に呼び出すつもりです。ああ、また、バージョン番号の自動変更も必要です。ところで。ビルド手順の後に単体テストを呼び出す必要がありますか?どう思いますか? バグのあるコードが公開されていないことを確認したいだけです...

4

1 に答える 1

0

gulp 用の変換ライブラリがあります。

したがって、1 つのパッケージ形式を他の 2 つの形式に変換するのは簡単です。これは、テストとコードでも実行できます。commonjs は node と jasmine-node でテストでき、標準 js は karma と jasmine でテストでき、amd は karma、requirejs と jasmine でテストできます。

共通の記述子を作成し、すべてのテストの前にそれを変換するのは適切な選択ではありません。coffeescript などのような別の言語を作成したくないので、パッケージ間の変換は問題ありません。

公開前に単体テストを呼び出しても問題ありません。他に一般的なパッケージ タイプはないので、使用するすべてのコンポーネント マネージャーにはこの 3 つのパッケージで十分です。

バージョン管理については不明です。手動で設定するのは難しくありませんが、travis や maven のようなシステムがもっと役立つかもしれません... この回答を見つけて編集します。

于 2014-03-04T03:15:36.637 に答える