Grunt 源文件相对路径

Grunt source file relative path

为什么必须删除源文件路径中的前导斜杠才能让 Grunt 正确定位文件? gruntfile 与包含 JS 文件的 "includes" 文件夹一起位于较旧的主项目中。

module.exports = function(grunt) {

    var SiteMasterHeaderArray = [
        "/includes/js/knockout/knockout-3.4.0.js",
        "/includes/js/common/common.js" 
    ];

    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),

        uglify: {
            dest: {
                files: {
                    'dest/SiteMasterHeader.js': SiteMasterHeaderArray
                }
            }
        }
    });

    grunt.loadNpmTasks('grunt-contrib-uglify');

    grunt.registerTask('default', ['uglify']);
};

未写入目标文件是因为(至少在我看来是这样)由于文件路径中的“/”,Grunt 正在为这些文件搜索其他位置。删除斜杠,函数完美运行。

前导 / 表示它是一个 绝对 路径并且它正在寻找它,从根目录开始。如果没有它,它会从 Gruntfile.js 所在的位置搜索 relative 路径。

如果您希望路径与 Gruntfile 不同的文件夹相关,请参阅 grunt.file.setBase--base cli 选项。 More information here.