Node.js WebPack:如何同时查找bower.json和.bower.json
我已经能够使用webpack查找内部的组件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: {
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文件的结构不是公共的,将来可能会更改(也可能不会更改)。