Node.js WebPack:如何同时查找bower.json和.bower.json

Node.js WebPack:如何同时查找bower.json和.bower.json,node.js,bower,webpack,Node.js,Bower,Webpack,我已经能够使用webpack查找内部的组件bower\u组件。当bower组件只包含.bower.json而不包含bower.json文件时,我遇到了一些问题(请注意,第一个文件名前面有一个) 我的webpack.config.js文件的简化版本如下所示: var ResolverPlugin = require('webpack/lib/ResolverPlugin'); // webpack configuration module.exports = { entry: {

我已经能够使用webpack查找内部的组件
bower\u组件
。当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'])
        )
    ]
};
我正在尝试将其用作鲍尔组件。另一个问题可能是它的
.bower.json
文件中缺少
main
字段。不管它值多少钱,我已将该文件包括在下面:

// .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
}

.bower.json
是bower在依赖项解析期间生成的文件。它不等同于
bower.json
,通常不应使用,因为它是一个可能更改的文件。
在只看到
.bower.json
文件的情况下,这意味着包没有
bower.json
(bower实际上可以在没有它的情况下工作)。在这种情况下,这意味着您将无法找到“主”属性。
例如,包中的bower.json文件仅在其主分支中,而不在其发布标签中(可能尚未发布)。当您解析它时,Bower将使用3.8.1 git标记,正如您在.Bower.json文件中看到的那样。此标记中没有bower.json文件。

对于这样的包,您可能想考虑另一个选项,如CuffsJS.< /P>。到目前为止,我已经向WebPACK配置添加了一个附加的插件。这将查看
.bower.json
\u originalSource
字段。这是可行的,但你会说这是一个冒险的解决方案吗?如果您这样认为,我将使用CommonJS
\u originalSource
与main属性不等效,因此我不确定使用它是否是一个好主意。如果没有bower.json,则无法知道主文件是什么。在这种情况下,我认为您应该尝试使用另一个包含此信息的描述符。此外,.bower.json文件的结构不是公共的,将来可能会更改(也可能不会更改)。