我应该将.coffee
文件存储在 git 中并使用一些 git 钩子在服务器端编译它们,还是应该将文件.coffee
和.js
文件都存储在 SCM 中而忽略服务器上的咖啡?
除了额外的 SCM 空间使用之外,存储已编译的 .js 文件是否有任何缺点?我宁愿不必在每台服务器上安装 node、npm 和 coffee。
我应该将.coffee
文件存储在 git 中并使用一些 git 钩子在服务器端编译它们,还是应该将文件.coffee
和.js
文件都存储在 SCM 中而忽略服务器上的咖啡?
除了额外的 SCM 空间使用之外,存储已编译的 .js 文件是否有任何缺点?我宁愿不必在每台服务器上安装 node、npm 和 coffee。
我见过的工作流是针对 Rails 和 Node.js 的。我目前的流程是基于它们的,看起来像:
/assets/src/coffee
/assets/js
并将其引用为/js/foo.js
/assets/lib
/assets/js
从源代码管理中排除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
.