Webpack Externals似乎不适用于React

时间:2019-12-19 14:37:59

标签: reactjs npm webpack

我正在创建一个React库,已经以某种方式将其发布到npm。但是,在开发流程中,我遇到了几个问题。

我的代码摘要:

1)package.json (仅显示相关内容)

请注意,reactpeerDependencies中都存在devDependencies。我的图书馆甚至不需要react来使用development,但是我正在使用的某些软件包依赖于它,因此它位于devDependencies中。

  "peerDependencies": {
    "react": "^16.12.0"
     ...
  },
  "dependencies": {
     ...
  },
  "devDependencies": {
    "react": "^16.12.0"
    ...
  }

2)webpack.config.json

我在外部提到过,Webpack不应在构建的包中包含react,而应依靠react出现在消费者的环境中。 但是,这不起作用,因为我已经在我的一个库代码(import react from 'react';中导入了react,因此将其放入包中。 我之所以这么说,是因为我遇到了钩子的多个反应版本错误

const path = require('path');

module.exports = {
  entry: './src/index.jsx',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'index.js',
    library: 'react-flexible-sliding-menu',
    libraryTarget: 'umd'
  },
  resolve: { extensions: ['.js', '.jsx'] },
  module: {
    rules: [
      {
        test: /\.(js|jsx)$/,
        include: path.resolve(__dirname, 'src'),
        exclude: /(node_modules|bower_components|build)/,
        use: ['babel-loader']
      }
    ]
  },
  externals: {
    // Use external version of React
    react: {
      root: 'React',
      commonjs2: 'react',
      commonjs: 'react',
      amd: 'react',
      umd: 'react'
    },
    'react-dom': {
      root: 'ReactDOM',
      commonjs2: 'react-dom',
      commonjs: 'react-dom',
      amd: 'react-dom',
      umd: 'react-dom'
    }
  }
};

0 个答案:

没有答案