javascript – 使用webpack在浏览器中使用require模块

尝试过去2天在浏览器中使用require(‘modules’)和webpack,当我在5分钟内在browserify中做同样的事情时……

这是我的webpack.config.js

var webpack = require('webpack');
var path = require('path');
var fs = require('fs');

var nodeModules = {};
fs.readdirSync('node_modules')
  .filter(function(x) {
    return ['.bin'].indexOf(x) === -1;
  })
  .forEach(function(mod) {
    nodeModules[mod] = 'commonjs ' + mod;
  });

module.exports = {
    entry: "./main.js",
    output: {
        filename: "bundle.js"
    }
}

但是,无论我做什么,我都会遇到某种错误.目前我得到:

bundle.js:390 Uncaught Error: Cannot find module "net"

当我运行webpack时,它会抛出这些错误:http://pastebin.com/RgFN3uYm

我跟着https://webpack.github.io/docs/tutorials/getting-started/http://www.pauleveritt.org/articles/pylyglot/webpack/但我仍然遇到这些错误.

我试图用它运行它:webpack ./main.js -o bundle.js但它仍然无效.

怎么解决这个问题?

最佳答案 你应该添加目录来解决,例如

 resolve: {
        modulesDirectories: ['./app/', './node_modules']
 }

更新:
添加json loader

npm install --save-dev json-loader

module: {
    loaders: [
      { test: /\.json$/, loader: 'json-loader' }
    ]
  }

此外,fs,net,tls是node.js的库,不适用于浏览器内使用.你应该添加:

node: {
    fs: 'empty',
    net: 'empty',
    tls: 'empty'
  }
点赞