如何重命名angular yeoman index.html文件

时间:2014-01-30 19:27:07

标签: angularjs yeoman-generator

是否可以在有角度的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文件需要使用我的指令,控制器,服务的新脚本标记手动更新。

1 个答案:

答案 0 :(得分:2)

是的,这是可能的。但是你必须改变你的Gruntfile.js:

  • 将所有出现的index.html更改为您的html文件
  • 从以下位置更改服务器设置:

    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或提供其他选项来配置名称。