WebPack:如何同时查看bower.json和.bower.json

时间:2015-01-21 18:39:03

标签: node.js bower webpack

我已经能够通过webpack查找bower_components中的组件。当bower组件仅包含.bower.json而不是bower.json文件时(我注意到第一个文件名前面有.),我就会遇到问题。

我的webpack.config.js文件的简化版本如下所示:

var ResolverPlugin = require('webpack/lib/ResolverPlugin');

// webpack configuration
module.exports = {
    entry: {
        app: 'app.js'
    },
    output: {
        filename: '[name].js'
    },
    resolve: {
        modulesDirectories: ['node_modules', 'web_modules', 'bower_components', 'static']
    },
    plugins: [
        new ResolverPlugin(
            new ResolverPlugin.DirectoryDescriptionFilePlugin('bower.json', ['main'])
        )
    ]
};

我尝试使用jquery.selectBoxIt作为bower组件。另一个问题可能是其main文件中缺少.bower.json字段。对于它的价值,我在下面包含了该文件:

// .bower.json

{
  "name": "jquery.selectBoxIt",
  "homepage": "https://github.com/gfranko/jquery.selectBoxIt.js",
  "version": "3.8.1",
  "_release": "3.8.1",
  "_resolution": {
    "type": "version",
    "tag": "v3.8.1",
    "commit": "ffa615b25ebf4fac392726b17c857d429acf244c"
  },
  "_source": "git://github.com/gfranko/jquery.selectBoxIt.js.git",
  "_target": "~3.8.1",
  "_originalSource": "jquery.selectBoxIt",
  "_direct": true
}

1 个答案:

答案 0 :(得分:3)

.bower.json是Bower在依赖项解析期间生成的文件。它不等同于bower.json,通常不应使用,因为它可能会更改internal文件。
如果您只看到.bower.json文件,则表示该软件包没有bower.json(Bower实际上可以在没有它的情况下工作)。在这种情况下,这意味着您将无法找到" main"属性。
例如,jquery.selectBoxIt.js包仅在其主分支中具有bower.json文件,但在其发布标记中没有(可能尚未发布)。当您解决它时,Bower将使用3.8.1 git标记,如.bower.json文件中所示。在此标记中没有bower.json文件 对于此类软件包,您可能需要考虑另一个选项,例如CommonsJS。