我想在提交Mercurial或Git repo之前运行JSLint.
我希望这是一个自动步骤,而不是依赖于开发人员(主要是我)记住之前运行JSLint.我通常在开发时运行JSLint,但是想要在JS文件上指定一个合同,它们在提交到repo之前传递JSLint.
对于Mercurial,此页面说明了预先提交的语法,但似乎唯一可用的变量是提交中涉及的parent1和parent2变更集ID.我真正想要的是提交涉及的文件名列表,以便我可以选择.js文件并对它们运行jslint.
对于GIT类似的问题,作为预提交脚本的一部分提供的默认信息似乎有限.
可能有用的是调用hg status/git status作为precommit脚本的一部分,解析该输出以查找JS文件,然后以这种方式执行工作.我希望有一些更简单的东西,我不确定调用状态作为预先提交钩子的一部分是否反映了正确的信息.例如在Git中,如果尚未添加更改文件,但git commit使用-a,那么文件是否会在git status输出的正确部分中显示为提交集的一部分?
更新:我有一些工作,它在这里可见:http://github.com/jrburke/dvcs_jslint/
以下main.js代码不尊重优先级顺序(有时underscore.js在backbone.js需要时不加载):
require({
baseUrl:'/scripts',
priority:[
"http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js",
"http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/jquery-ui.min.js",
"http://ajax.cdnjs.com/ajax/libs/underscore.js/1.1.6/underscore-min.js",
"http://ajax.cdnjs.com/ajax/libs/backbone.js/0.3.3/backbone-min.js"
]
},["src/app"],
function (app) {
app.start();
});
Run Code Online (Sandbox Code Playgroud)
order!在这些CDN依赖项失败并添加order.js not found错误之前添加.