【发布时间】:2015-10-14 10:58:43
【问题描述】:
我正在尝试从 Javascript 动态加载一些 css 文件。
片段:
if (theme === 'testtheme' || theme === 'testtheme/') {
css =
<!-- build:css({.tmp,app}) styles/main_testtheme.css -->
'<link rel="stylesheet" href="styles/css/main_testtheme.css" type="text/css" />'
<!-- endbuild -->
;
} else {
css =
<!-- build:css({.tmp,app}) styles/main.css -->
'<link rel="stylesheet" href="styles/css/main.css" type="text/css" />'
<!-- endbuild -->
;
}
但是,grunt-build 任务将构建 cmets 之间的所有文本替换为以下内容:
<link rel="stylesheet" href="styles/e59b065a.main.css">
从而删除字符串引号并使代码无效。
我想怎么跑:
<!-- build:css({.tmp,app}) styles/main.css -->
css = 'styles/css/main.css';
<!-- endbuild -->
应该导致:
css = 'styles/e59b065a.main.css';
这将允许测试未缩小(未构建)和缩小版本。 Grunt build 对我来说大约需要 5 分钟,所以我在开发时尽量避免这种情况。
编辑: 我可能可以覆盖 css 的默认 blockReplacement(请参阅 https://github.com/yeoman/grunt-usemin#blockreplacements ),但这会让任何后来尝试弄清楚为什么他们的样式表没有正确嵌入的人感到痛苦。
【问题讨论】:
标签: gruntjs grunt-usemin grunt-html-build