我有一个shell命令./node_modules/cordova/bin/cordova
,可以从项目根目录访问。
我还有一组Grunt配置文件,位于./config
文件夹中。
现在我正在尝试从任务中运行cordova并希望将其用作别名,所以在Gruntfile.js中我有这样的:
grunt.initConfig({
buildDir: 'build/interim_builds',
publishDir: 'build/publish',
cordovaCommand: './node_modules/cordova/bin/cordova',
...
})
然后,从一个任务我运行它:
mobileApp_create: {
cmd: '<%= cordovaCommand %> create <%= mobileAppProjectDir %>'
}
结果我收到了这个错误:
''不被视为内部或外部命令,
如果我更换
cordovaCommand: './node_modules/cordova/bin/cordova'
与
cordovaCommand: 'node_modules/cordova/bin/cordova'
然后我看到了这个错误:
'node_modules'未被识别为内部或外部命令,
所以,我想它可能是相对路径以及Grunt如何使用它们的东西?我在哪里可以解决这个问题,因为我需要使用本地安装的cordova,而不是全局。
答案 0 :(得分:0)
您可以尝试在运行时完全解析路径,这样就没有相对路径:
var path = require('path');
module.exports = function(grunt) {
grunt.initConfig({
buildDir: 'build/interim_builds',
publishDir: 'build/publish',
cordovaCommand: path.resolve('./node_modules/cordova/bin/cordova'),
// ...
});
// ...
};