我已经能够通过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
}
答案 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。