【发布时间】:2013-09-25 20:48:26
【问题描述】:
很难理解在 grunt-usemin 的配置和使用中的不同点如何处理路径。
我有以下 repo 布局,其中 repo 根也将是 web 应用程序根:
/dashboard/index.html
/Gruntfile.js
/vendor/...some 3rd party CSS and JS...
所以 index.html 文件 -> somedomain.com/dashboard/index.html.
index.html 文件包含来自 /vendor 文件夹的一些 CSS 和 JS 资产。我已将 grunt 配置为将构建输出放在构建文件夹中:
/build/dashboard/index.html
在 index.html 文件中,我用 usemin 块包裹了所有 CSS 链接和 JS 脚本标签:
<!-- build:css(.) app.min.css -->
<!-- build:js(.) app.min.js -->
我必须用“(.)”指定一个“替代搜索路径”,以便“/vendor/backbone.js”的脚本标签可以在正确的位置找到它。在我这样做之前,它一直在寻找 /dashboard/vendor/backbone.js。
我希望将处理 CSS/JS 资产的输出输出到 build/dashboard/app.min.css 和 build/dashboard/app.min.js,并使用简单的相对“app”包含在 index.html 中.min.css/js" 路径。
问题是,grunt-usemin 似乎正在使用我为这两个上下文指定的“app.min.*”路径,这使得它们无法一起工作:
1) 出于创建文件的目的,它将路径视为相对于构建目录的路径;这些文件最终位于 build/app.min.css 和 build/app.min.js 中。
2) 将路径视为相对于 index.html 文件的路径,以生成新的链接/脚本标签;浏览器加载 build/dashboard/index.html,然后尝试加载映射到 build/dashboard/app.min.css 的“app.min.css”。
有解决办法吗?
【问题讨论】:
标签: node.js gruntjs yeoman grunt-usemin