【问题标题】:Aggregating and uglifying JavaScript in a Git pre-commit hook在 Git 预提交挂钩中聚合和丑化 JavaScript
【发布时间】:2012-01-25 18:17:42
【问题描述】:

我使用ready.js 将JavaScript 文件聚合到all.js 文件中(没有Google's Closure Compiler),然后我使用uglify-js 来缩小和混淆代码。我想在预提交挂钩中完成所有这些操作。

但是,我认为我做错了什么。

我的.git/hooks/pre-commit 文件如下所示:

#!/bin/sh
readyjs ~/Sites/backbone/js/javascripts/ ~/Sites/backbone/js/ --nojslint -o "underscore.js, backbone.js" --nocompiler
uglifyjs -nm -o ~/Sites/backbone/js/all.min.js ~/Sites/backbone/js/all.js
# Commit
exit

我不应该在这里使用简单的 Bash 吗?还有什么我做错了吗?这一步似乎被完全跳过了。

【问题讨论】:

  • 会不会是 git 不知道在哪里可以找到这些命令?尝试指定这些二进制文件的完整路径,而不仅仅是说明命令本身。
  • @favoretti 好主意,但还是没用。我用/usr/bin/readyjs 对它们进行了测试,它在命令行上运行得很好,但在钩子中失败了。

标签: git continuous-integration githooks uglifyjs


【解决方案1】:

我的精神力量表明您的脚本不可执行;试试看

chmod +x .git/hooks/pre-commit

【讨论】:

  • 完全正确。现在,如果您的精神力量可以告诉我为什么在执行git commit 时默认情况下无法执行该钩子。
  • 好吧,因为您自己创建了该文件,并且新文件是使用已挂载的文件系统文件模式创建掩码 (umask) 指定的权限创建的,它不应该使用可执行标志创建新文件,因为大多数文件都是不是:)
  • 后续(堆栈溢出)问题是Why is my Git pre-commit hook not executable by default?
猜你喜欢
  • 1970-01-01
  • 2010-12-22
  • 2021-09-10
  • 1970-01-01
  • 1970-01-01
  • 2019-12-25
  • 1970-01-01
  • 2014-01-03
  • 2015-09-10
相关资源
最近更新 更多