javascript - webpack 获取 material-ui 的正确方法

标签 javascript reactjs 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 请求 material-ui 的建议。 谢谢。

最佳答案

我终于明白了。

答案很简单:

  1. 通过 npm 安装 material-ui:npm install material-ui --save
  2. 添加resolve.moduleDirectories, resolve.extensions
  3. 通过 jsx-loader?harmonyjsx-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;

关于javascript - webpack 获取 material-ui 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28042157/

相关文章:

javascript - 使用单选按钮和复选框从 HTML 生成 PDF

javascript - React hook 形式用以前的值注册新字段

javascript - 如何解决 DOM 元素上的警告 : React does not recognize the `currentSlide` , ` slideCount` Prop

reactjs - 使用 React Hooks 创建具有多个输入的 axios post

javascript - babel,带有nodemon脚本的webpack?

javascript - Twitter Bootstrap 下拉菜单的事件处理程序?

javascript - 处理外部函数导入

javascript - 使用 async/await 继续执行

javascript - 由于导入顺序,Backbone View 不是 Webpack 中的构造函数错误

ubuntu - webpack-dev-server : ERROR in missing ) after argument list @ multi main