我想将我的linkchecker测试包含到grunt中。我可以用powershell很好地执行它
& 'C:\Program Files (x86)\LinkChecker\linkchecker.exe' http://localhost:3000
这是我的Gruntfile:
module.exports = function (grunt) {
//load plugins
[
'grunt-cafe-mocha',
'grunt-contrib-jshint',
'grunt-exec',
].forEach(
function(task){
grunt.loadNpmTasks(task);
}
);
//configure plugins
grunt.initConfig(
{
/* cafemocha: {
all: {
src: 'qa/tests-*.js',
options: {
ui: 'tdd',
}
}
},*/
jshint: {
app: [
'meadowlark.js',
'public/js/**/*.js',
'lib/**/*.js',
],
qa: [
'Gruntfile.js',
'public/qa/**/*.js',
'qa/**/*.js,'
]
},
exec: {
linkchecker: {
cmd: '\& \'C:\\Program Files (x86)\\LinkChecker\\linkchecker.exe\' http://localhost:3000'
}
},
}
);
//register tasks
grunt.registerTask(
'default',
[/*'cafemocha',*/ 'jshint', 'exec']
);
};
我真的很头疼,将对linkchecker的调用整合为咕unt。我已经尝试了第39行的几个呼叫:
1.使用完整路径转义所有内容:
cmd: '& \'C:\\Program Files (x86)\\LinkChecker\\linkchecker.exe\' http://localhost:3000'
结果:
“&” kann syntaktisch是一个死者Stelle nicht verarbeitet werden。
退出代码:1。
翻译:无法处理
&
2.使用完整路径转义所有内容和
&
:cmd: '\& \'C:\\Program Files (x86)\\LinkChecker\\linkchecker.exe\' http://localhost:3000'
结果:
^ [W044]错误或不必要的转义。
3.为linkchecker.exe的路径设置一个本地变量:
cmd: '$env:linkchecker http://localhost:3000'
结果:
死于日期的语法,死于日期的错误。
退出代码:1。
翻译:局部变量
$env:linkchecker
未被解析4.将呼叫外包到脚本。
cmd: '.\\qa\\linkchecker.ps1'
结果:linkchecker.ps1在编辑器中成为openend。
我也尝试过grunt-shell。问题似乎是咕gr声必须将&传递给shell。它不能处理
&
,并且用\&
转义也无济于事。 最佳答案
终于弄清楚了:
cmd: '"C:\\Program Files (x86)\\LinkChecker\\linkchecker.exe" http://localhost:3000'
关于javascript - 用grunt-exec和powershell执行linkchecker.exe,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25081078/