Как я могу переименовать файл angular yoman index.html

можно ли переименовать файл index.html в генераторе angular yoman? Другими словами, я хотел бы использовать другое имя вместо index.html.

  • ОБНОВИТЬ

Чтобы быть более конкретным

Я хотел бы, чтобы йомен также знал об изменении, чтобы, когда я создаю новую директиву, сервис, контроллер йомен записывал его в блок «Сборка». то есть

        <!-- 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-файл нужно будет вручную обновить с помощью нового тега сценария для моей директивы, контроллера, службы.


person Subtubes    schedule 30.01.2014    source источник


Ответы (1)


Да, это возможно. Но вы должны изменить свой Gruntfile.js:

  • измените все вхождения index.html на ваш html-файл
  • изменить настройки сервера с:

    livereload: {
       options: {
         open: true,
         base: [
           '.tmp',
           '<%= yeoman.app %>'
         ]
       }
    }
    

to:

livereload: {
    options: {
      open: 'http://localhost:9000/yourname.html',
      base: [
        '.tmp',
        '<%= yeoman.app %>'
      ]
    }
  },

Если вы хотите использовать угловые генераторы yoman, они не будут обновлять файл, отличный от 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 или указать дополнительную опцию для настройки имени.

person michael    schedule 30.01.2014
comment
единственная проблема в том, что grunt+bower больше не знает, куда записывать файлы. Раньше grunt включал файл в index.html, теперь он этого не делает. - person Subtubes; 31.01.2014
comment
@EdgarMartinez, что вы имеете в виду под: куда больше записывать файлы? какие файлы? - person michael; 31.01.2014
comment
Извините, позвольте мне быть более конкретным. Я обновил вопрос, надеюсь, это прояснит. - person Subtubes; 31.01.2014
comment
@EdgarMartinez добавил подсказку, как это исправить :) - person michael; 31.01.2014
comment
Я посмотрю, смогу ли я добавить эту функцию и отправлю запрос на включение - person Subtubes; 31.01.2014