【问题标题】:Configure the gulp bundling destination folder outside the project folder在项目文件夹之外配置 gulp 捆绑目标文件夹
【发布时间】:2016-05-31 13:56:29
【问题描述】:

我们使用 gulp 进程(使用 aurelia-bundler)捆绑我们的应用程序。到目前为止,捆绑过程目标文件夹位于名为“dist”的项目文件夹中。我们需要将目标文件夹放在项目文件夹之外

gulp.task('bundle', function (callback) {
runSequence('unbundle',
            'bundle-config',
            'copy-app-files',
            'compress',                
            function () {

            });

});

【问题讨论】:

    标签: gulp aurelia


    【解决方案1】:

    理论上,您只需更改 build/paths.js 文件的 exportSrvRoot 变量即可。例如:

    //var exportSrvRoot = 'export/';
    var exportSrvRoot = '../'; //this is outside of the project folder.
    

    现在,gulp export 命令会将文件导出到项目文件夹上方的文件夹中。构建输出(gulp build/bundle)的解决方案是相同的,但您必须更改 outputRoot 变量而不是 exportSrvRoot

    但是,这种方法存在一个问题。由于您的导出文件夹在项目文件夹之外,如果您运行gulp export,您将收到一条错误消息,指出gulp.del 无法删除项目文件夹之外的文件夹。这可以通过向gulp.del 传递额外的参数来解决,但是该任务使用vinyl-paths 来调用gulp.del,从而阻止您为其发送任何额外的参数=/。

    解决上述问题的方法之一是删除export-release.js的第36行

    // use after prepare-release
    gulp.task('export', function(callback) {
      return runSequence(
        'bundle',
        //'clean-export', <---- this line
        'export-copy',
        callback
      );
    });
    

    这样gulp export 就不会尝试删除文件夹,防止出错。但是现在,每次运行gulp export之前都必须手动删除导出文件夹。

    解决此问题的另一种方法是重写 clean-export 任务,以从 vinyl-paths 中移除其依赖关系。

    希望这会有所帮助!

    【讨论】:

    • 我们已更改配置,但“app-bulid-”文件未在新的 dist 文件夹中成功生成。
    • 我可以通过如下修改 bundles.json 文件来做到这一点bundles: { "../../dist/app-build": { includes: [ 在指定位置生成文件,但现在会引发无法计算规范名称的问题
    猜你喜欢
    • 2019-11-06
    • 1970-01-01
    • 1970-01-01
    • 2015-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-19
    相关资源
    最近更新 更多