【问题标题】:Move from Grunt to Gulp从 Grunt 转移到 Gulp
【发布时间】:2023-03-25 03:22:01
【问题描述】:

我正在使用 grunt 在我的项目中构建咖啡脚本和更少的文件。 现在我想改用 gulp……但我遇到了一些问题。

在我的 grunt 文件中,如果一个全局对象包含我的所有源目录和目标目录的路径。 每个任务都使用此路径来查找要处理的文件。

grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),   
    // Global configuration
    globalConfig: {
        //Source Paths
        src: {
            styleDirectory: "styles/",
            customStyleDirectory: '<%= globalConfig.src.styleDirectory %>_Custom/',
            scriptDirectory: "scripts/",
            customScriptDirectory: '<%= globalConfig.src.scriptDirectory %>_Custom/',
        },
        //Destination Paths
        dest: {
            outputRoot: "../",
            styleOutput: "<%= globalConfig.dest.outputRoot %>css/",
            scriptOutput: "<%= globalConfig.dest.outputRoot %>js/",
        }
    },
    // Compile coffee script to java script -----------------------------------------
    coffee: {
        options: { .. },
        customOut: {
            files: {
                '<%= globalConfig.dest.scriptOutput %>Main.js': [
                    '<%= globalConfig.src.customScriptDirectory %>_Root.coffee',
                    '<%= globalConfig.src.customScriptDirectory %>Logic/_Helpers.coffee',
                    '<%= globalConfig.src.customScriptDirectory %>**/*.coffee'
                ]
            }
        }
    }
});

如何用 gulp 做这样的事情? 似乎不起作用。

【问题讨论】:

    标签: gruntjs gulp grunt-contrib-coffee


    【解决方案1】:

    以同样的方式,您可以在 gulpfile.js 配置文件中使用 multidimensional object

    var directories = {
        styles: 'styles/',
        scripts: 'scripts/',
        dest: 'dest/'
    };
    
    var paths = {
        src: {
            customStyles: directories.styles+'_Custom/',
            customScripts: directories.scripts+'_Custom/'
        },
        dest: {
            styles: directories.dest + directories.styles,
            scripts: directories.dest + directories.scripts
        }
    };
    

    然后您可以从 Gulp 任务中引用该对象,如下所示:

    gulp.task('styles', function() {
      return gulp.src(paths.src.styles + 'main.css')
        ...
    });
    
    // Rerun the task when a file changes
    gulp.task('watch', function() {
      gulp.watch(paths.src.styles, ['styles']);
      ...
    });
    

    【讨论】:

    • 这并不能解决我的问题。我还需要“styles/”或“scripts/”的路径,我不想在我的脚本中有两次路径的部分......
    • @musium 你可以像 Grunt 一样使用multidimensional objects。请参阅我编辑的答案。
    • 谢谢...仍然不是我所希望的(2 个而不是 1 个对象).. 但它完成了工作
    猜你喜欢
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 2015-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多