Webpack 2:无法解析node.js本机模块

时间:2017-03-18 17:36:42

标签: node.js webpack webpack-2 nvm

捆绑后我遇到以下错误:

Module not found: Error: Can't resolve 'crypto' in //filePath

它无法解决五个模块:cryptofspathvmconstants - 来自任何需要它们的文件

我认为可能是因为我使用了nvm,但我通过nvm use system命令切换到系统nodejs,而webpack仍然会抛出这些错误。

我还认为它可能是target属性,因此我将其更改为node,但它也没有帮助(无论如何我需要electron-renderer,而不是node )。

重要提示:我刚刚从webpack迁移过来1.在迁移之前,这一切都运行良好。但这些是我唯一的错误。此外,webpack似乎工作正常,它甚至在我通过--watch选项时查看文件。

这是我的webpack.config.js:

const config = {
  target: 'electron-renderer',
  context: __dirname,
  entry: { app: './app.js', vendor: [/*vendors*/]},
  cache: true,
  devtool: 'source-map',
  watch: false

  resolve: {
    extensions: ['.js', '.json', '.jsx'],
    modules: ["node_modules"]
  },

  module: {

    rules: [
      {test: /\.html/, loader: 'html-loader'},
      {
        test: /\.less$/,
        use: ExtractTextPlugin.extract({
          fallback: "style-loader",
          use: ["css-loader?sourceMap", "less-loader?sourceMap"]
        })
      },
      {
        test: /\.css/,
        use: ExtractTextPlugin.extract({
          fallback: "style-loader",
          use: "css-loader?sourceMap"
        })
      },
      {test: /\.(jpg|png|gif|jpeg|svg|otf|ttf|eot|woff)$/, loader: 'url-loader?limit=10000'}
    ]
  },

  plugins: [

    new ExtractTextPlugin('styles.[contenthash].css'),

    new webpack.optimize.CommonsChunkPlugin({
      names: ['commons', 'vendor', 'manifest'],
      minChuncks: Infinity
    }),

    new HtmlWebpackPlugin({
      template: './index.html',
      filename: 'index.html',
      hash: false,
      inject: 'head',
      cashe: true,
      showErrors: true
    })

  ],

  output: {
    publicPath: './',
    path: path.join(__dirname, 'dist'),
    filename: '[name].[chunkhash].js',
    chunkFilename: '[name].[chunkhash].js'
  }
};

module.exports = config;

1 个答案:

答案 0 :(得分:0)

问题出在worker-loader,这不在我的webpack.config.js中(我在导入文件时直接使用它)。有关详细信息,请参阅此issue尚未修复)。