Исключение карты источника Webpack4 + Typescript5 в рабочем режиме - PullRequest
0 голосов
/ 01 июля 2019

В соответствии с Руководством по веб-пакету "Production" я пытаюсь добавить поддержку карты исходного кода в сборку выпуска / релиза.

Однако при попытке запустить я получаю исключениеWebpack в производственном режиме со следующим скриптом npm: webpack --mode production -p --devtool source-map.Все, что он делает:

  • устанавливает mode в production
  • аргумент -p: shortcut for --optimize-minimize --define process.env.NODE_ENV="production"
  • и устанавливает devtool до source-map

Исключение

Unhandled rejection Error: original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.

tsconfig

{
  "compilerOptions": {
    "outDir": "./dist",
    "target": "es5",
    "module": "commonjs",
    "strict": true,
    "noImplicitAny": true,
    "noImplicitThis": true,
    "noImplicitReturns": true,
    "noUnusedParameters": true,
    "sourceMap": true
  },
  "include": [
    "src/**/*"
  ]
}

webpack config

const path = require('path');

module.exports = {
  entry: './src/app.ts',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'bundle.js'
  },
  resolve: {
    extensions: ['.js', '.ts']
  },
  module: {
    rules: [
      {
        test: /\.ts$/,
        exclude: /node_modules/,
        loader: 'ts-loader'
      }
    ]
  }
};

Что я пробовал

Сначала я следовал Руководству по TypeScript .Они также использовали сопоставление исходных кодов - главное отличие - загрузчик исходных карт, однако удаление кода ниже к правилам не помогает:

{
  enforce: 'pre',
  test: /\.js$/,
  loader: 'source-map-loader'
}

Затем я попытался связываться с исходной картой.опции;в tsconfig изменили sourceMap на inlineSourceMap, в конфигурации веб-пакета source-map на inline-source-map (несмотря на то, что это не рекомендуется согласно руководству по веб-пакету), но безуспешно.

Наконец,добавление mode и devtool в конфигурацию webpack ничего не меняет, поэтому передача их в качестве аргументов выглядит нормально.


Обновление

Я думалЯ делаю мини проект репро, поэтому я удалил все дополнительные загрузчики (например, sass-loader).И все работало нормально.Поэтому я предполагаю, что существует проблема совместимости с одним из загрузчиков.


Обновление 2

После нескольких дней упорных попыток решить эту проблему,Я наконец удалил файл блокировки пакета и папку node_modules.Я запустил npm install тогда все работает нормально ...

1 Ответ

2 голосов
/ 01 июля 2019

Это, похоже, ошибка, существовавшая в более поздней версии 4.0.1 (зависимость от веб-пакета) и исправленная в версии 4.0.2.Версия 4.0.2 была выпущена только вчера (2019-06-30).Удаление и повторная обработка файла блокировки привели к обновлению npm / yarn до фиксированной версии.

Для всех, у кого возникла эта проблема, попробуйте выполнить:

npm upgrade webpack terser

или

yarn upgrade webpack terser
...