【问题标题】:Output JS and HTML to different locations using Gulp Usemin使用 Gulp Usemin 将 JS 和 HTML 输出到不同的位置
【发布时间】:2015-02-25 12:30:29
【问题描述】:

我正在使用 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 -->

任何帮助将不胜感激。在我们说话时尝试更多组合

【问题讨论】:

    标签: javascript gulp gulp-usemin


    【解决方案1】:

    因为你有:

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

    你需要使用:

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

    【讨论】:

    • 这似乎解决了我的一些问题。现在我将通过泵送索引文件以删除相对路径。谢谢
    • Np。请注意,在尝试设置时,usemin 有几个错误可能会让您感到困惑。 (查看 github 存储库)。我最终改用了 useref,它与 gulp-if 一起工作得很好。
    • 谢谢。是的,我会调查的,因为我在同一个文件中有多个块。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多