Webpack: невозможно назначить только для чтения свойство 'exports' объекта '# <Object>'

Когда я компилировал код из Material Design Boostrap через Webpack, я столкнулся с этой проблемой в консоли Google Chrome:

Uncaught TypeError: Cannot assign to read only property 'exports' of object '#<Object>'

Файлы, которые использовались Webpack для объединения кода:

vendor.js

require('mdbootstrap-pro/css/mdb.css');

require('mdbootstrap');
require('mdbootstrap-pro');
require('jquery');
require('popper.js');

Наряду с jQuery и Popper коды в mdbootstrap похож на официальные релизы Bootstrap

webpack.vendor.js

var webpack = require('webpack');

let path = require('path');
let MiniCssExtractPlugin = require('mini-css-extract-plugin');
let TerserJSPlugin = require('terser-webpack-plugin');
let OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');

module.exports = (env = {}, argv) => {
  return {
    node: {
      fs: 'empty',
      chart: 'empty',
      child_process: 'empty',
      net: 'empty',
      tls: 'empty',
    },

    entry: {
      'vendor': ['./vendor.js'],
    },

    output: {
      path: path.resolve(__dirname, 'static', 'bundle'),
      filename: 'vendor.bundle.js',
    },

    module: {
      rules: [
        {
          test: /\.css$/,
          use: [
            MiniCssExtractPlugin.loader,
            'css-loader',
          ]
        },
        {
          test: /\.(jpg|jpeg|png|woff|woff2|eot|ttf|svg|gif)$/,
          loader: 'url-loader',
        }
      ],
    },

    plugins: [
      new MiniCssExtractPlugin({
        filename: 'vendor.bundle.css',
      }),

      new webpack.ProvidePlugin({
        $: 'jquery',
        jQuery: 'jquery',
        'window.jQuery': 'jquery',
        Popper: ['popper.js', 'default'],
      })
    ],

    optimization: {
      minimizer: [new TerserJSPlugin({}), new OptimizeCSSAssetsPlugin({})],
    },
  };
};

package.json

{
  "name": "webpack-demo",
  "version": "1.0.0",
  "description": "",
  "private": true,
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "babel-plugin-transform-es2015-modules-commonjs": "^6.26.2",
    "url-loader": "^3.0.0",
    "webpack": "^4.41.4",
    "webpack-cli": "^3.3.10"
  },
  "dependencies": {
    "babel-loader": "^8.0.6",
    "bootstrap": "^4.4.1",
    "chart.js": "^2.9.3",
    "css-loader": "^3.4.0",
    "enhanced-resolve": "^4.1.1",
    "file-loader": "^5.0.2",
    "jquery": "^3.4.1",
    "loadash": "^1.0.0",
    "lodash": "^4.17.15",
    "mdbootstrap": "^4.11.0",
    "mdbootstrap-pro": "git+https://oauth2:thequickbrownfoxjumpsoverthelazydog@git.mdbootstrap.com/mdb/jquery/jq-pro.git",
    "mini-css-extract-plugin": "^0.9.0",
    "optimize-css-assets-webpack-plugin": "^5.0.3",
    "popper.js": "^1.16.0",
    "resolve-url-loader": "^3.1.1",
    "sass-loader": "^8.0.0",
    "svg-loader": "0.0.2"
  }
}

На самом деле, я просмотрел разные форумы в Github по поводу этой проблемы, и все они в основном предлагали эти вещи, и ни одно из них не сработало:

  • использовать require вместо того import как import нельзя использовать с module.exports
  • добавлять sourceType: 'unambiguous' в файл конфигурации
    • Invalid configuration object. Configuration has an unknown property 'sourceType'
      
    
    

Любая помощь (-а) действительно приветствуется.

0 ответов

Другие вопросы по тегам