部署coffeescript的首选工作流程是什么?

时间:2013-02-07 11:43:02

标签: javascript deployment coffeescript

我应该将.coffee文件存储在git中并使用一些git钩子在服务器端编译它们,还是应该将所有.coffee.js文件存储在SCM中并忽略咖啡服务器

除了额外的SCM空间使用外,存储已编译的.js文件是否有任何缺点?我宁愿不必在每台服务器上安装node,npm和coffee。

1 个答案:

答案 0 :(得分:1)

我见过的工作流程适用于Rails和Node。我目前的流程基于它们,看起来像:

  1. 将.coffee文件保存在/assets/src/coffee
  2. 将已编译的.js文件保存在/assets/js中,并将其引用为/js/foo.js
  3. /assets/lib
  4. 中保留应用外部的.js文件(例如图形工具)
  5. 从源代码管理中排除/assets/js
  6. 如果尚未编译coffeescript文件,请立即设置中间件以编译coffeescript文件。 connect-coffee-script是我最喜欢的人。
  7. 在我的回忆中,Rails中的过程非常相似。

      

    除了额外的SCM空间使用外,存储已编译的.js文件是否有任何缺点?我宁愿不必在每台服务器上安装node,npm和coffee。

    我认为没有充分理由将已编译的js放入源代码 - 您的中间件应该处理将咖啡变成js。我也认为在您的服务器上安装咖啡没有任何不利之处 - 您应该在构建过程中进行npm更新,并且应该处理它。

    以下是设置代码:

    var app = express();
      ...
    srcFolder = path.join(__dirname, 'assets', 'src', 'coffee');
    publicFolder = path.join(__dirname, 'assets');
    
    
    app.configure(function () {
      ...
    app.use(require('connect-coffee-script')({
        src:srcFolder, dest:path.join(publicFolder, 'js'), force:true
    }));
    

    值得注意的是,我在Windows 7上遇到了一些问题; node的文件观察者似乎有一些问题。所以在开发时我必须有一个运行命令窗口:coffee -o ./assets/js -wc ./assets/src/coffee