I'm trying to use material-ui by webpack. However, I got the error message in chrome dev-tool
Uncaught ReferenceError: require is not defined
My webpack.config.js:
var bower_dir = __dirname + '/bower_components';
var node_modules_dir = __dirname + '/node_modules';
var config = {
addVendor: function (name, path) {
this.resolve.alias[name] = path;
this.module.noParse.push(new RegExp(path));
},
entry: {
Messenger: './app/Messenger.jsx',
AppComponent: './app/AppComponent.jsx'
},
// The resolve.alias object takes require expressions
// (require('react')) as keys and filepath to actual
// module as values
resolve: {
alias: {},
extensions: ['', '.jsx']
},
output: {
path: './www',
filename: '[name].bundle.js'
},
module: {
noParse: [],
loaders: [
{ test: /\.css$/, loader: 'style-loader!css-loader' }, // use ! to chain loaders
{ test: /\.png$/, loader: "url-loader?limit=100000&mimetype=image/png" },
{ test: /\.jsx$/, loader: 'jsx-loader' }
]
}
};
config.addVendor('react', bower_dir + '/react/react.min.js');
config.addVendor('material-ui', bower_dir + '/material-ui/src/index.js');
config.addVendor('react-tap-event-plugin', node_modules_dir + '/react-tap-event-plugin/src/injectTapEventPlugin.js');
module.exports = config;
I need some suggestions on how to require material-ui with webpack. Thanks.
Finally, I got this.
The answer is quite simple:
material-ui
by npm: npm install material-ui --save
resolve.moduleDirectories
, resolve.extensions
jsx-loader
by jsx-loader?harmony
The final webpack.config.js I got it:
var config = {
entry: {
Messenger: './app/Messenger.jsx',
AppComponent: './app/AppComponent.jsx'
},
resolve: {
modulesDirectories: ['node_modules'],
alias: {},
extensions: ['', '.jsx', '.js']
},
output: {
path: './www',
filename: '[name].bundle.js'
},
module: {
noParse: [],
loaders: [
{ test: /\.css$/, loader: 'style-loader!css-loader' }, // use ! to chain loaders
{ test: /\.png$/, loader: "url-loader?limit=100000&mimetype=image/png" },
{ test: /\.jsx$/, loader: 'jsx-loader?harmony' }
]
}
};
module.exports = config;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With