webpack require material-ui 的正确方法
Correct way to require material-ui by webpack
我正在尝试通过 webpack 使用 material-ui。但是,我在 chrome dev-tool
中收到错误消息
Uncaught ReferenceError: require is not defined
我的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;
我需要一些关于如何使用 webpack 请求 uire material-ui 的建议。
谢谢
我终于明白了。
答案很简单:
- 通过 npm 安装
material-ui
:npm install material-ui --save
- 添加
resolve.moduleDirectories
、resolve.extensions
- 通过
jsx-loader?harmony
在jsx-loader
中开启和谐模式
最后的webpack.config.js我明白了:
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;
我正在尝试通过 webpack 使用 material-ui。但是,我在 chrome dev-tool
中收到错误消息Uncaught ReferenceError: require is not defined
我的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;
我需要一些关于如何使用 webpack 请求 uire material-ui 的建议。 谢谢
我终于明白了。
答案很简单:
- 通过 npm 安装
material-ui
:npm install material-ui --save
- 添加
resolve.moduleDirectories
、resolve.extensions
- 通过
jsx-loader?harmony
在
jsx-loader
中开启和谐模式
最后的webpack.config.js我明白了:
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;