Usemin и несколько конфигураций сборки
Ниже приведен пример конфигурации сборки usemin в моем файле index.html.
<!-- build:js js/one.js -->
<script src="app/modules/one/one.js"></script>
<script src="app/modules/one/two.js"></script>
<script src="app/modules/one/three.js"></script>
<!-- endbuild -->
<!-- build:js js/two.js -->
<script src="app/modules/two/one.js"></script>
<script src="app/modules/two/two.js"></script>
<script src="app/modules/two/three.js"></script>
<!-- endbuild -->
Для версии разработки я не хочу минимизировать скрипты, и я хочу, чтобы каждый модуль был в своем собственном файле js. Таким образом, index.html после запуска будет
<script src="js/one.js"></script>
<script src="js/two.js"></script>
Для рабочей версии я хочу минимизировать сценарии и объединить их в один файл. Так что index.html будет
<script src="js/myApp.js"></script>
Я попробовал следующее, но это не работает:
<!-- build:myApp js/myApp.js -->
<!-- build:js js/one.js -->
<script src="app/modules/one/one.js"></script>
<script src="app/modules/one/two.js"></script>
<script src="app/modules/one/three.js"></script>
<!-- endbuild -->
<!-- build:js js/two.js -->
<script src="app/modules/two/one.js"></script>
<script src="app/modules/two/two.js"></script>
<script src="app/modules/two/three.js"></script>
<!-- endbuild -->
<!-- endbuild -->
И запустите задачу use-min следующим образом (prod будет иметь значение true в задаче prod и false в задаче dev) -
usemin({
myApp: prod?[uglify({mangle:true})]:'',
js: prod?'':[uglify({mangle:false})]
}).
Я могу сохранить два файла index.html и управлять этим. Но мне было интересно, можно ли этого достичь с помощью одного index.html?
Заранее благодарю за любую помощь.
2 ответа
Похоже, вы используете тот же идентификатор конвейера: JS
<!-- build:js js/one.js -->
<!-- build:js js/two.js -->
Попробуйте использовать уникальные идентификаторы конвейера следующим образом:
<!-- build:js1 js/one.js -->
<!-- build:js2 js/two.js -->
Как насчет этого? Объедините все файлы JavaScript в 2 файла, как в вашем dev env. После этого просто объединить эти два файла в один большой?
<!-- build:js js/one.js -->
<script src="app/modules/one/one.js"></script>
<script src="app/modules/one/two.js"></script>
<script src="app/modules/one/three.js"></script>
<!-- endbuild -->
<!-- build:js js/two.js -->
<script src="app/modules/two/one.js"></script>
<script src="app/modules/two/two.js"></script>
<script src="app/modules/two/three.js"></script>
<!-- endbuild -->
<!-- build:myApp js/myApp.js -->
<script src="js/one.js"></script>
<script src="js/two.js"></script>
<!-- endbuild -->
Или даже пометить все файлы одной сборкой?
<!-- build:myApp js/myApp.js -->
<script src="app/modules/one/one.js"></script>
<script src="app/modules/one/two.js"></script>
<script src="app/modules/one/three.js"></script>
<script src="app/modules/two/one.js"></script>
<script src="app/modules/two/two.js"></script>
<script src="app/modules/two/three.js"></script>
<!-- endbuild -->