是否可以在有角度的yeoman生成器中重命名index.html文件?换句话说,我想使用不同的名称而不是index.html
更具体一点
我希望yeoman也知道这个变化,这样当我生成一个新的指令时,服务,控制器yeoman会将它写入“Build”块。即
<!-- build:js({.tmp,app}) scripts/scripts.js -->
<script src="scripts/app.js"></script>
<script src="scripts/controllers/main.js"></script>
<!-- endbuild -->
我很害怕如果我重命名index.html文件,yeoman不知道名称更改,所以我的新html文件需要使用我的指令,控制器,服务的新脚本标记手动更新。
答案 0 :(得分:2)
是的,这是可能的。但是你必须改变你的Gruntfile.js:
从以下位置更改服务器设置:
livereload: {
options: {
open: true,
base: [
'.tmp',
'<%= yeoman.app %>'
]
}
}
为:
livereload: {
options: {
open: 'http://localhost:9000/yourname.html',
base: [
'.tmp',
'<%= yeoman.app %>'
]
}
},
如果您想使用yeoman角度生成器,它们将不会更新与index.html不同的文件,因为index.html在生成器中是硬编码的。只有一个命令行参数(--skip-add
)可以阻止生成器触及index.html文件。
当然可以。它是开源的。相关部分位于文件中:https://github.com/yeoman/generator-angular/blob/master/script-base.js
Generator.prototype.addScriptToIndex = function (script) {
try {
var appPath = this.env.options.appPath;
var fullPath = path.join(appPath, 'index.html');
angularUtils.rewriteFile({
file: fullPath,
needle: '<!-- endbuild -->',
splicable: [
'<script src="scripts/' + script.toLowerCase().replace('\\', '/') + '.js"></script>'
]
});
} catch (e) {
console.log('\nUnable to find '.yellow + fullPath + '. Reference to '.yellow + script + '.js ' + 'not added.\n'.yellow);
}
};
您可以更改名称index.html
或提供其他选项来配置名称。