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

Output JS and HTML to different locations using 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 阻止。需要有脚本的绝对路径

<!-- 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 -->

如有任何帮助,我们将不胜感激。边说边尝试更多组合

因为你有:

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

您需要使用:

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