在项目文件夹外部配置gulp捆绑目标文件夹

时间:2016-05-31 13:56:30

标签: gulp aurelia

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

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

            });

});

1 个答案:

答案 0 :(得分: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任务,以便从乙烯基路径中删除其依赖关系。

希望这有帮助!