0

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

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

4

1 回答 1

1

我见过的工作流是针对 Rails 和 Node.js 的。我目前的流程是基于它们的,看起来像:

  1. 将 .coffee 文件保存在/assets/src/coffee
  2. 保留已编译的 .js 文件/assets/js并将其引用为/js/foo.js
  3. 将应用程序外部的 .js 文件(例如绘图实用程序)保存在/assets/lib
  4. /assets/js从源代码管理中排除
  5. 设置您的中间件以即时编译咖啡脚本文件(如果尚未编译)。connect-coffee-script是我最喜欢的那个。

据我所知,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 上遇到了一些问题。节点的文件观察者似乎有一些问题。所以我在开发时必须有一个运行这个命令窗口:coffee -o ./assets/js -wc ./assets/src/coffee.

于 2013-02-07T21:16:08.867 回答