1

我正在使用 d3.js 编写一个非常复杂的 js 图表库。代码被组织在多个文件中(准确地说是 17 个),每个文件都有一个或多个类。此外,代码有多个外部依赖,如 d3.js、jQuery、下划线、...

要加载图表,需要以适当的顺序加载不同的文件,以管理文件之间的相关性。

我想创建一个构建脚本来管理所有依赖项(内部和外部)以创建一个独立的库。我知道requirejs,喜欢它并想使用它。但是我没有找到一种方法让它在不添加客户端依赖的情况下编译服务器端代码。

这里的目标实际上是通过仅加载一个文件,使该库可以像任何其他库一样在任何项目中轻松使用。由于我也计划在服务器端使用该库,因此我希望该解决方案也与 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

有很多项目可以结合 JavaScript,例如YUI CompressorGruntBrunch

于 2012-09-08T18:20:44.020 回答
1

我选择和Grunt一起去。没有真正的原因,只是它看起来有据可查且非常活跃。

所以在知道 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 回答