У меня ужасное время, когда я использую yeoman/grunt и usemin, пытаясь заставить выходные файлы работать одновременно с записью правильного пути внутри html, когда у меня есть подпапки.
Моя базовая установка заключается в том, что есть страницы верхнего уровня (например, index.html), а также страницы для конкретных языков в подпапках (en, de, fr и т. д.) - каждая из них будет иметь общие файлы js (например, jquery), но также js-файлы для конкретного языка (то же самое для css, но все просто...)
– Gruntfile.js
– app
|– index.html
|– js
jquery.js
|– en
english.js
|– de
german.js
|– css
|– en
|– index.html
|– de
|– index.html
– dist
Итак, в основном - есть index.html верхнего уровня, в котором есть jquery и т. Д. - Таким образом, тег script там может выглядеть так:
<script src="js/jquery.js"></script>
или с обр.
<script src="js/123.jquery.js"></script>
Но в en/index.html тег script должен выглядеть так (для общего - как jquery)
<script src="../js/jquery.js"></script>
или с обр.
<script src="../js/123.jquery.js"></script>
Проблема в ../.
Я могу получить файл js, созданный, но не измененный, или измененный, но пустой, или созданный и измененный, но в неправильном месте (чаще всего вне/над папками app и dist!)
В en/index.html - я просто не могу понять, как должна выглядеть сборка: js, например.
<!-- build:js js/jquery.js -->
<script src="../js/jquery.js"></script>
<!-- endbuild -->
<!-- build:js js/en/english/jquery.js -->
<script src="../js/en/english.js"></script>
<!-- endbuild -->
Я пробовал каждую комбинацию, о которой только мог подумать, - кажется, что если я пишу ../ в пути сборки: js, то фактический файл помещается на 1 уровень выше папки приложения, но записывает путь в html правильно. Если я оставлю ../ out, он поместит файл в нужное место, но в html тоже нет ../ (что ему явно нужно) - так как я могу сказать, что я хочу, чтобы выходной файл ссылка на один уровень выше (вне en/ папки), но ворчание не поместило его на один уровень выше (вне папки dist!)
Спасибо!