У меня есть проект grunt, поддерживаемый генератором-йоменом, который я построил на основе generator-webapp
, если это поможет, вы можете найти его на GitHub
Проект grunt дает нам задачу grunt-usemin
.
Мой проект включает в себя создание многоязычного веб-сайта и сохранение чистоты, я решил поместить все страницы, написанные на языке в имени папки, после 2-буквенного короткого кода указанного языка.
| project/
|--dist/
|----en/
|------index.html
|------404.html
|------...
|----fr/
|------index.html
|------404.html
|------...
Файлы создаются из шаблонов дескрипторов и обрабатываются с помощью assemble
. В макете у меня есть строительные блоки для usemin
, такие как
<!-- build:css(.tmp) styles/main.css -->
<link rel="stylesheet" href="../styles/main.css">
<!-- endbuild -->
<!-- build:js scripts/vendor/modernizr.js -->
<script src="../bower_components/modernizr/modernizr.js"></script>
<!-- endbuild -->
Что в совершенном мире переведет на
<link rel="stylesheet" href="../styles/main.css">
<script src="../scripts/vendor/modernizr.js"></script>
но вместо этого показывает
<link rel="stylesheet" href="styles/main.css">
<script src="scripts/vendor/modernizr.js"></script>
что в моем случае является менее идеальным.
Соответствующая часть Gruntfile.js
выглядит так:
useminPrepare: {
options: {
dest: '<%= yeoman.dist %>'
},
html: [
'<%= yeoman.app %>/fr/{,*/}*.html',
'<%= yeoman.app %>/en/{,*/}*.html'
]
},
usemin: {
options: {
dirs: ['<%= yeoman.dist %>']
},
html: [
'<%= yeoman.dist %>/fr/{,*/}*.html',
'<%= yeoman.dist %>/en/{,*/}*.html'
],
css: ['<%= yeoman.dist %>/styles/{,*/}*.css']
}
Я попытался использовать параметр basedir
установив его на <%= yeoman.dist %>
, а также изменив блоки построения на
<!-- build:css(.tmp) ../styles/main.css -->
<link rel="stylesheet" href="../styles/main.css">
<!-- endbuild -->
<!-- build:js ../scripts/vendor/modernizr.js -->
<script src="../bower_components/modernizr/modernizr.js"></script>
<!-- endbuild -->
Но, к сожалению, он не смог получить правильный результат.
Более конкретно, первая ничего не изменила, вторая имела папки scripts
и styles
, выведенные на один уровень слишком высоко в иерархии
| project/
|--app/
|--dist/
|--styles/
|--scripts/
вместо
| project/
|--app/
|--dist/
|----styles/
|----scripts/
Кто-нибудь может знать, что делать? Это довольно простая утилита, но я не мог найти нужную мне помощь через Google, GitHub или SO...