0

我喜欢在 grunt 构建文件中生成一个 shell 脚本并设置执行位。

在我的任务中,我执行以下操作:

grunt.registerTask('createScript', 'Creates the script', function() {
    var ejs = require('ejs');
    //...
    grunt.file.write(
        './build/myScript.sh',
        ejs.render( grunt.file.read('myScript.sh.ejs'), { locals:myParams } )
    );
});

似乎既grunt.file.write没有也grunt.file没有选项来指定文件模式位。(参见API grunt.file

如何设置位?

4

1 回答 1

1

因为 grunt 在 node 中运行,我们可以简单地使用fsnode 的文件系统模块。fs有一个方法chmod()/ chmodSync()

代码示例可能看起来像这样:

grunt.registerTask('createScript', 'Creates the script', function() {
    var ejs = require('ejs');
    var fs = require('fs');
    //...
    grunt.file.write(
        './build/myScript.sh',
        ejs.render( grunt.file.read('myScript.sh.ejs'), { locals:myParams } )
    );
    fs.chmodSync('./build/myScript.sh', '777');
});
于 2013-02-13T10:32:29.257 回答