grunt-bower-install将bower_components链接到当前目录

时间:2014-02-18 17:21:53

标签: javascript gruntjs yeoman bower

我最近在Grunt和Bower使用Yeoman Angular发生器开始了一个新项目。

每当grunt构建我的应用程序时,grunt-bower-install会在index.html文件中重新生成指向bower_components的所有链接。

无论出于何种原因,这些资产都链接到当前目录而不是root,所以当我导航到一个深度超过一级的新Url时,我的所有依赖都会中断。

如何才能使组件链接到根目录而不是当前目录?

目前的结果:

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

期望的结果:

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

Gruntfile:

'bower-install': {
  app: {
    html: '<%= yeoman.app %>/index.html',
    ignorePath: '<%= yeoman.app %>/'
  }
}

1 个答案:

答案 0 :(得分:3)

我和yo 1.1.2有同样的问题,这是我解决问题的方法,在Gruntfile.js中,在wiredep任务中添加fileTypes选项:

// Automatically inject Bower components into the app
wiredep: {
  app: {
    src: ['<%= yeoman.app %>/index.html'],
    ignorePath: new RegExp('^<%= yeoman.app %>/|../'),
    fileTypes: {
      html: {
        replace: {
          js: '<script src="/{{filePath}}"></script>',
          css: '<link rel="stylesheet" href="/{{filePath}}" />'
        }
      }
    }
  }
},