使用Gulp Usemin将JS和HTML输出到不同的位置

时间:2015-02-25 12:30:30

标签: javascript gulp gulp-usemin

我使用gulp-usemin来合并我的JS文件(使用uglify)

我有一个文件夹结构如下:

Top
  |- Web
      |- Scripts
         |- App
             |- script1.js
             |- script2.js
         |- Vendor (folder)
         |- CompiledScripts
             |- useminFile1.js
      |- Areas
          |- Area1
              |- index.html

gulp-usemin的所有用例都指定将所有内容复制到dist文件夹,这是我无法做到的。

目标是将index.html文件重写到它的当前位置,但是将组合的JS文件写入“Top / Web / Scripts / CompiledScripts”#。我尝试了各种组合,但我只能在正确的位置获得JS​​ OR html,而不是两者。

我已将基本任务放在下面。这将在正确的位置输出重写的索引文件,但不会输出已编译的JS文件(将与html文件放在同一目录中,放在html块的路径中)。

gulp.src('./Top/Web/Areas/Area1/index.html')
    .pipe(usemin({
        path: './Top/Web/',
        assetsDir: './Top/Web/',
        js: [
            uglify()
        ]
    }))
    .pipe( gulp.dest( './Top/Web/Areas/Area1/' ) );

HTML Block。需要拥有脚本的绝对路径

<!-- build:js /Scripts/CompiledModules/Libraries/test.js -->
    <script src="/Scripts/Vendor/Bower/lodash/dist/lodash.js"></script>
    <script src="/Scripts/Vendor/Bower/jquery/jquery.js"></script>
<!-- endbuild -->

非常感谢任何帮助。在我们说话时尝试更多组合

1 个答案:

答案 0 :(得分:0)

因为你有:

.pipe( gulp.dest( './Top/Web/Areas/Area1/' ) );

您需要使用:

<!-- build:js ../../Scripts/CompiledScripts/vendor.min.js -->