I'm having an issue including react-router-bootstrap in my vendors.js output of my webpack.config.js.
var Webpack = require('webpack');
var VENDOR_PATH = __dirname + '/node_modules';
var CommonsChunkPlugin = Webpack.optimize.CommonsChunkPlugin;
var config = {
/* for vendors (and other modules) we have a CDN for */
addExternal: function (name, globalVar) {
this.externals[name] = globalVar;
this.entry.vendors.push(name);
},
/* for vendors we don't have a CDN for */
addVendor: function (name, path) {
this.resolve.alias[name] = path;
this.entry.vendors.push(name);
},
addPlugin: function (plugin) {
this.plugins.push(plugin);
},
entry: {
app: [ './src/main.js' ],
vendors: [],
},
plugins: [],
externals: { },
output: {
path: __dirname + '/public/dist',
filename: 'bundle.js'
},
resolve: {
alias: { },
extensions: [ '', '.js', '.jsx' ]
},
module: {
noParse: [],
loaders: [
{ test: /\.less$/, loader: 'style-loader!css-loader!less-loader', exclude: /node_modules/ },
{ test: /\.jsx?$/, loader: 'babel-loader?stage=0', exclude: /node_modules/ },
]
}
};
config.addExternal('jquery', 'jQuery');
config.addExternal('react', 'React');
config.addVendor('react-router', VENDOR_PATH + '/react-router/umd/ReactRouter.js')
config.addVendor('react-bootstrap', VENDOR_PATH + '/react-bootstrap/dist/react-bootstrap.js');
config.addVendor('react-router-bootstrap', VENDOR_PATH + '/react-router-bootstrap/lib/index.js');
config.addPlugin(new CommonsChunkPlugin('vendors', 'vendors.js'));
module.exports = config;
var Button = require('react-bootstrap/lib/Button');
ERROR in ./~/react-router-bootstrap/lib/ButtonLink.js
Module not found: Error: Cannot resolve 'file' or 'directory' c:\[...]\project/node_modules/reactbootstrap/dist/react-bootstrap.js/lib/Button in c:\[...]\project\node_modules\react-router-bootstrap\lib
@ ./~/react-router-bootstrap/lib/ButtonLink.js 3:13-50
var Button = require('react-bootstrap').Button;
I'm new to javascript development so I don't know if this is the proper fix/workaround or if I'm even setting up my webpack project correctly.