如何让 Bower Install 在将文件链接到 html 文件之前将文件复制到另一个目录?

How to get Bower Install to copy files to another directory before linking them in html file?

在我的 gruntfile.js 中,我正在使用 bower install 在我的 index.html 中为我所有的 js 库创建必要的脚本标签。我的 grunt 文件条目如下所示:

   bowerInstall: {
      target: {
        src: ['wwwroot/index.html'],
        cwd: '',
        dependencies: true,
        devDependencies: true,
        exclude: [],
        fileTypes: {},
        ignorePath: '',
        overrides: {}
      }
    }

我的 index.html 从我的 index.html.tpl 得到正确更新,如下所示:

<head>
<!-- bower:js -->
<script src="../bower_components/jquery/dist/jquery.js"></script>
<script src="../bower_components/angular/angular.js"></script>
<script src="../bower_components/bootstrap/dist/js/bootstrap.js"></script>
<script src="../bower_components/underscore/underscore.js"></script>
<!-- endbower -->
<!-- bower:css -->
<link rel="stylesheet" href="../bower_components/bootstrap/dist/css/bootstrap.css" />
<!-- endbower -->
<link rel="stylesheet" type="text/css" href="wwwroot/app/styles/style.css" />

我想要发生的是将所有 js 库文件复制到特定的 lib 目录,然后从那里 link 它们。这可以通过 bower install 来完成,还是我应该使用另一个 grunt 插件? bower-install 插件似乎很受欢迎,但我找不到太多关于它的文档。

bower.json 旁边添加一个 .bowerrc 文件。如果文件已经存在,请将其内容更改为:

{
    "directory": "bower_components"
}

{
    "directory": "you/new/lib/path"
}

重新安装 Bower 组件:

bower install

然后调用 Grunt 任务:

grunt bowerInstall

您应该尝试将 grunt-bower 与 g运行t-bower-install 一起使用。您可以配置 Bower 以将复制文件安装到特定文件夹。它看起来像这样:

bower: {
  dev: {
    dest: 'lib/',
    js_dest: 'lib/js',
    css_dest: 'lib/styles'
  }
}

那么如果你运行任务:

grunt bower

您的 lib 文件夹中会有这样的东西:

  /js
    /package1
      package1_file1.js
      package1_file2.js
    /package2
      package2.js
  /styles
    /package1
      package1.css
    /package2
      package2.css