javascript - Webpack 构建时不包含对等依赖项

标签 javascript reactjs webpack

我正在构建一个 React 库并使用 Webpack 来捆绑它。我很清楚依赖关系和对等依赖关系背后的概念。

在项目中,React 被指定为对等依赖。

"peerDependencies": {
  "react": ">= 16.3.0",
  "react-dom": ">= 16.3.0"
}

这是我的构建脚本

"build": "webpack --config webpack.config.babel.js"

这是我的webpack.config.babel.js

import path from 'path';
import CleanWebpackPlugin from 'clean-webpack-plugin';
const packageJson = require('./package.json');

export default () => ({
  mode: 'production',
  entry: {
    index: path.join(__dirname, 'src/index.js')
  },

  output: {
    path: path.join(__dirname, 'dist'),
    filename: '[name].js',
    library: packageJson.name,
    libraryTarget: 'umd'
  },

  module: {
    rules: [
      {
        test: /.jsx?$/,
        exclude: /node_modules/,
        include: path.join(__dirname, 'src'),
        use: [
          {
            loader: 'babel-loader',
            options: {
              presets: ['@babel/preset-env', '@babel/preset-react']
            }
          }
        ]
      },
      {
        test: /\.(scss)$/,
        loader: 'style-loader!css-loader!sass-loader'
      }
    ]
  },

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

  plugins: [new CleanWebpackPlugin(['dist/*.*'])],
  optimization: {
    splitChunks: {
      name: 'vendor',
      minChunks: 2
    }
  }
});

每次构建时,React 代码都会包含在捆绑文件中。 我不确定如何在捆绑文件中不包含 React 的情况下捆绑库。

最佳答案

我明白了。

Webpack 有一个名为 externals 的配置。任何指定为外部的内容都不会捆绑在一起。

我所要做的就是将此配置添加到 webpack.config.babel.js

externals: {
  react: 'react',
  reactDOM: 'react-dom'
}

更多信息请点击此处 - webpack externals

关于javascript - Webpack 构建时不包含对等依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53386748/

相关文章:

javascript - MiniCssExtractPlugin 没有创建 css 文件

javascript - 如何使用 Ruby On Rails 5 播放声音

javascript - 转换类数组对象,Array.prototype.slice 或 Array.from

javascript - 使用 React.js 时,何时、何地以及如何将类添加到 document.body

javascript - bundle.js 显示 HTML 代码而不是 javascript

node.js - Webpack 无法始终解析 TS 加载器

javascript - Thunderbird Webextensions .messages.getFull() 引发异常 0x80004005 (NS_ERROR_FAILURE)

javascript - 在 Internet 区域处于高安全模式时,网站在 IE8 中出现乱码

reactjs - React js - HOC 和装饰器之间有什么区别

javascript - 引用资料 onChange 处理程序中的 UI SelectField 组件