Grunt + Yeoman - 如何在index.html中停止重写链接的JS文件?

时间:2014-09-18 20:14:12

标签: angularjs gruntjs yeoman yeoman-generator-angular

我有一个与Yeoman和Grunt一起构建的Angular项目。每次如果我运行命令:

sudo grunt serve 

app是否正常启动但是在index.html中删除了bower_components目录中的一些链接库。

FXP:

<script src="bower_components/spin.js/spin.js"></script>

因此,我必须每次都在git中恢复index.html文件中的更改,然后才能继续测试。

我有什么可能解决这个恼人的问题?

感谢您的帮助。

修改

我试过以下:

安装的:

npm install grunt-script-inject

GrunFile.js

 // Automatically inject Bower components into the app
    wiredep: {
      app: {
        src: ['<%= yeoman.app %>/index.html'],
        ignorePath: new RegExp('^<%= yeoman.app %>/|../')
      },
    scriptinject: {
      dev: {
         srcs: ['<%= yeoman.client %>/bower_components/path/to/src/plugin.js',
                '<%= yeoman.client %>/bower_components/path/to/src/plugin2.js'] ,//order is important if this sciprt will be concated and minified
         html: '<%= yeoman.client %>/index.html', //file that as the block comment to look for a place to insert the script tags
         without: '<%= yeoman.client %>/' //this script will be used to remove this block of string of script tag file location
        }
      }
    },

 grunt.registerTask('serve', 'Compile then start a connect web server', function (target) {
    if (target === 'dist') {
      return grunt.task.run(['build', 'connect:dist:keepalive']);
    }

    grunt.task.run([
      'clean:server',
      'wiredep',
      'scripinject',
      'concurrent:server',
      'autoprefixer',
      'connect:livereload',
      'watch'
    ]);
  });

但是现在,在咕噜声发球后,我看到了以下错误:

Running "serve" task
Warning: Task "scripinject" not found. Use --force to continue.

Aborted due to warnings.

有什么问题?

2 个答案:

答案 0 :(得分:1)

我使用bower install命令

中的 - s 解决了问题

所以:

bower install --save  angular-translate

工作正常。

以下是文档:

http://bower.io/docs/api/#install

答案 1 :(得分:1)

我有类似的问题。 在index.html中,我添加了以下代码:

<script src="bower_components/highcharts-release/highcharts.js"></script>
<script src="bower_components/highcharts-release/modules/heatmap.js"></script>

每次我运行grunt servegrunt build命令时,grunt都会将其改写为:

<script src="bower_components/highcharts-release/highcharts.js"></script>
<script src="bower_components/highcharts-release/highcharts-more.js"></script>
<script src="bower_components/highcharts-release/modules/exporting.js"></script>

所以我查看bower_components/highcharts-release/bower.json文件并看到:

{
  "name": "highcharts",
  "version": "v4.1.4",
  "main": [
    "highcharts.js",
    "highcharts-more.js",
    "modules/exporting.js"
  ]
}

我把它改为:

{
  "name": "highcharts",
  "version": "v4.1.4",
  "main": [
    "highcharts.js",
      "modules/heatmap.js"
  ]
}

现在一切都很好。希望它会帮助某人,即使这是一个很晚的答案。