1

d3.js を使用して、非常に複雑な js チャート ライブラリを作成しています。コードは複数のファイル (正確には 17 個) に編成され、各ファイルには 1 つ以上のクラスがあります。さらに、コードには、d3.js、jQuery、アンダースコアなどの複数の外部依存関係があります...

チャートをロードするには、異なるファイルを適切な順序でロードして、ファイル間の依存関係を相対的に管理する必要があります。

すべての依存関係 (内部および外部) を管理してスタンドアロン ライブラリを作成するビルド スクリプトを作成したいと考えています。私はrequirejsを知っていて、気に入っていて、使いたいと思っています。しかし、クライアント側に依存関係を追加せずにサーバー側のコードをコンパイルする方法が見つかりませんでした。

ここでの実際の目標は、1 つのファイルをロードするだけで、ライブラリを他のライブラリと同じように任意のプロジェクトで簡単に使用できるようにすることです。サーバーサイドでもライブラリを使う予定なので、node.jsにも対応してほしいです。

これは、私のコードがどのように見えるかを示す偽のコード例です。

//  in file1.js
var Foo = {}
Foo.Class1 = function(params){
    this.params = params;
    this.bar = function(){
        return this.params.bar || "bar";
    }
}

//  in file2.js
foo.Class2() = function(params){
   $.extend(this, new Foo.Class1(params));

   this.bar = function(){
        return this.params.bar || "BAR";
    }
}
4

2 に答える 2

1

私はグラントと一緒に行くことにしました。それが十分に文書化され、非常に活発であるように見えることを除いて、本当の理由はありません.

Grunt の存在を知ってから 15 分も経たないうちに、私の問題を解決する grunt.js ファイルがここにあります。

module.exports = function(grunt) {

    // Project configuration.
    grunt.initConfig({
      concat: {
        dist: {
          src: ['file1.js', 'file2.js'],
          dest: 'built.js'
        }
      }
    });
};

もっとGruntを使うのを本当に楽しみにしています!

アンドレアス・コベルレに乾杯!

于 2012-09-10T17:30:48.937 に答える
1

YUI CompressorGruntBrunchなど、JavaScript を組み合わせるプロジェクトはたくさんあります。

于 2012-09-08T18:20:44.020 に答える