为什么在使用预置环境节点时无法解析nodejs默认模块?

时间:2019-05-23 21:14:56

标签: node.js webpack babeljs

我正在为运行带有旧版Node的Chromium嵌入式框架(CEF)的应用编写插件。

我将webpack和babel放入了应用程序。当我运行webpack时,它在具有const fs = require('fs');的文件或任何其他默认节点程序包上失败。我的代码和依赖项都在发生这种情况:

Module not found: Error: Can't resolve 'fs' in '/Users/me/repositories/myrepo/node_modules/chokidar'

我的.babelrc是:

{
  "presets": [
    [
      "@babel/preset-env",
      {
        "targets": {
          "node": true
        }
      }
    ]
  ]
}

我的webpack配置基本上是:

module.exports = {
  entry: './src/main.jsx',
  mode: process.env.NODE_ENV,
  devtool: isDev ? 'eval-source-map' : false,
  output: {
    path: PLUGINDIR,
    filename: 'main.js',
    libraryTarget: 'umd'
  },
  module: {
    rules: [
      {
        test: /\.jsx?$/,
        exclude: /node_modules/,
        loader: 'babel-loader',
        options: {
          plugins: ['transform-react-jsx']
        }
      },
      {
        test: /\.css$/,
        use: ['style-loader', 'css-loader']
      }
    ]
  },

  resolve: {
    extensions: ['.js', '.jsx', '.css']
  }
};

1 个答案:

答案 0 :(得分:0)

webpack配置也需要target: 'node'。仅在.babelrc中做是不够的。