Как исправить модуль - неопределенная ошибка при использовании опции splitChunks в веб-пакете - PullRequest
1 голос
/ 13 мая 2019

Я получаю ошибку при попытке использовать опцию splitChunks в веб-пакете для моего проекта.Сгенерированный файл main.js / index.js выдает ошибку: TypeError: modules[moduleId] is undefined Другой сгенерированный файл vendors.js (который включает в себя мои node_modules) завершается с ошибкой: ReferenceError: exports is not defined Похоже, что файл vendors.js не получаетте же самые шаблонные функции веб-пакета, которые получает файл main.js, и это мое предположение относительно того, почему это происходит.Я использую HtmlWebPackPlugin , чтобы автоматически вставлять все ссылки на мои скрипты в html-страницу и видеть, что vendor.js также вставляется напрямую.

Я подтвердил, что веб-пакет работает без использования split-chunksвариант.Только при использовании этой опции я получаю ошибки.

Вот мой файл webpack.config.js:

const path = require('path');
const fs = require('fs');
const webpack = require('webpack');

const HtmlWebPackPlugin = require("html-webpack-plugin");

var srcFolder = "./wwwroot/src";
var distFolder = "./wwwroot/dist";
module.exports = {
  mode: 'development', //'production',
  target: 'node',
  entry: [
    '@babel/polyfill',
    'whatwg-fetch',
    srcFolder + '/js/main.ts'
  ],
  module: {
    rules: [
      {
        test: /\.tsx?$/,
        loader: 'ts-loader',
      },
      {
        test: /\.html$/,
        use: [
          {
            loader: "html-loader",
            options: { minimize: false }
          }
        ],
        exclude: /node_modules/
      },
    ]
  },
  resolve: {
    extensions: ['.tsx', '.ts', '.js']
  },
  output: {
    path: path.resolve(__dirname, distFolder),
    filename: '[name]_[chunkhash].js',
    publicPath: ""
  },
  optimization: {
    splitChunks: {
      chunks: 'all'
    },
  },
  devtool: "inline-source-map",
  plugins: [
    new HtmlWebPackPlugin({
      title: "Webpack Typescript Setup Template",
      template: srcFolder + "/index.html",
      favicon: srcFolder + "/assets/favicon.ico",
      filename: "./index.html"
    })
  ]
};

1 Ответ

0 голосов
/ 22 мая 2019

У меня была та же ошибка, но, возможно, в другой настройке. Для меня это происходит только в комплекте с сервером, поэтому я могу это исправить, добавив babel-loader plugins 'dynamic-import-node', 'remove-webpack'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...