Ответ 1
Я использовал grunt-include-source
Установите его:
npm install grunt-include-source --save-dev
В файле Grunt:
Загрузите его перед initConfig:
module.exports = function (grunt) {
...
grunt.loadNpmTasks('grunt-include-source');
Настроить includeSource сам в initConfig:
grunt.initConfig({
...,
includeSource: {
options: {
basePath: 'app',
baseUrl: '/',
},
server: {
files: {
'.tmp/index.html': '<%= yeoman.app %>/index.html'
}
},
dist: {
files: {
'<%= yeoman.dist %>/index.html': '<%= yeoman.app %>/index.html'
}
}
}
Добавьте эту задачу туда, где хотите (здесь я добавлю ее в задачу сборки):
grunt.registerTask('build', [
'clean:dist',
'includeSource:dist',
'useminPrepare',
...
Добавьте его в задачу просмотра:
watch: {
...,
includeSource: {
files: ['<%= yeoman.app %>/index.html'],
tasks: ['includeSource:server']
}
Измените useminPrepare (если вы используете yoman)
useminPrepare: {
// changed from app to dist, to take index.html processed by includeSource in dist
html: '<%= yeoman.dist %>/index.html',
options: {
dest: '<%= yeoman.dist %>'
}
},
Я использовал подзадачи: dist и server для генерации index.html в разных каталогах.
Изменить. Как включить ваши javascripts в index.html:
<!-- build:js({.tmp,dist,app}) /scripts/application.js -->
<!-- vendor, external -->
<script src="/bower_components/jquery/jquery.min.js"></script>
<script src="/bower_components/underscore/underscore-min.js"></script>
<script src="/assets/vendor/underscore.extentions.js"></script>
<script src="/bower_components/angular/angular.js"></script>
<script src="/bower_components/select2/select2.js"></script>
<script src="/bower_components/angular-ui-select2/src/select2.js"></script>
<!-- entry point -->
<script src="/scripts/config.processed.js"></script>
<script src="/scripts/app.js"></script>
<!--include everything in scripts/ except files directly inside scripts (without subdirectory) -->
<!-- include: "type": "js", "files": ["scripts/**/*.js", "!scripts/*.js"] -->
<!-- endbuild -->
Если вы хотите включить все скрипты, сделайте следующее:
<!-- include: "type": "js", "files": "scripts/**/*.js" -->