angular - Kan ikke lese egenskapen 'externalModuleIndicator' av undefined mens enhetstest kjører med karma og webpack 4


Etter å ha oppgradert Angular-prosjektet mitt med Webpack 4 får jeg følgende feil når jeg kjører enhetstester med Karma

[at-loader] Bruker [email fra TypeScript og "tsconfig.json" fra demo-app-app\src\tsconfig.json.

[at-loader] Sjekk startet i en egen prosess...

[at-loader] Sjekk ferdig med 1509 feil [at-loader]: Underprosess klarte ikke å behandle forespørselen: TypeError: Kan ikke lese egenskapen 'externalModuleIndicator' av undefined ved Object.isExternalModule (demo-app\node_modules\typescript\lib\typescript.js:13733:20) ved Object.getAllDependencies (demo-app\node_modules\typescript\lib\typescript.js:75788:46) ved Object.getAllDependencies (demo-app\node_modules\typescript\lib\typescript.js:76133:80) ved processEmit (demo-app\node_modules\awesome-typescript-loader\src\checkeruntime.ts:451:24) ved demo-app\node_modules\awesome-typescript-loader\src\checkeruntime.ts:602:6 ved Object.send (demo-app\node_modules\awesome-typescript-loader\src\checkeruntime.ts:48:6) ved Checker.req (demo-app\node_modules\awesome-typescript-loader\src\checker\checker.ts:100:15) ved Checker. emitFile (demo-app\node_modules\awesome-typescript-loader\src\checker\checker.ts:105:15) ved transform (demo-app\node_modules\awesome-typescript-loader\src\index.ts:132:26) ved transformationFunction (demo-app\node_modules\awesome-typescript-loader\src\index.ts:74:40) ved compiler (demo-app\node_modules\awesome-typescript-loader\src\index.ts:85:21) ved Object.loader (demo-app\node_modules\awesome-typescript-loader\src\index.ts:16:12) ved LOADER_EXECUTION (demo-app\node_modules\loader-runner\lib\LoaderRunner.js:119:14) ved runSyncOrAsync (demo-app\node_modules\loader-runner\lib\LoaderRunner.js:120:4) ved iterateNormalLoaders (demo-app\node_modules\loader-runner\lib\LoaderRunner.js:229:2) ved iterateNormalLoaders (demo-app\node_modules\loader-runner\lib\LoaderRunner.js:218:10) <--- Siste få GC-er --->

136168 ms: Mark-sweep 1255,3 (1435,8) -> 1242,3 (1435,8) MB, 893,2/0,0 ms [tildelingssvikt] [GC i gammel plass forespurt]. 137084 ms: Mark-sweep 1242,3 (1435,8) -> 1242,3 (1435,8) MB, 915,6/0,0 ms [tildelingssvikt] [GC i gammel plass forespurt]. 138055 ms: Mark-sweep 1242,3 (1435,8) -> 1248,2 (1408,8) MB, 970,0/0,0 ms [siste utvei gc]. 139026 ms: Mark-sweep 1248,2 (1408,8) -> 1254,0 (1408,8) MB, 971,0/0,0 ms [siste utvei gc].

<--- JS-stakkspor --->

==== JS-stakkspor =========================================

FATAL FEIL: CALL_AND_RETRY_LAST Tildeling mislyktes - JavaScript heap går tom for minne

Pakke Json:

awesome-typescript-loader:5.0.0-0 karma-webpack:2.0.4 webpack:4.1.1

var webpack = require('webpack');
var helpers = require('./helpers');

module.exports = {
    devtool: 'inline-source-map',

    resolve: {
        extensions: ['.ts', '.js']
    },

    mode: 'development',

    module: {
        loaders: [
            {
                test: /\.ts$/,
                loaders: ['awesome-typescript-loader', 'angular2-template-loader']
            },
            {
                test: /\.html$/,
                loader: 'html-loader'

            },
            {
                test: /\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot|ico)$/,
                loader: 'null'
            },
            {
                test: /\.css$/,
                include: helpers.root('src', 'app'),
                loader: 'raw'
            },
            {
               enforce: 'post',
               test: /\.(js|ts)$/,
               loader: 'istanbul-instrumenter-loader',
               include: helpers.root('src'),
               exclude: [
                 /\.(e2e|spec)\.ts$/,
                 /node_modules/
               ]
            }
        ]
    },

    plugins: [
        new webpack.ContextReplacementPlugin(
          /angular(\\|\/)core(\\|\/)@angular/,
          helpers.root('./src'),
          {}
        )
    ]
};

Vennligst merk at jeg kan kjøre mitt Angular-prosjekt uten problemer, det er bare UT-konfigurasjonene som gir feil.

Svar #1

Oppdater med 'npm update'-kommandoen. Det løste problemet mitt med feilen ovenfor.

Svar #2

Jeg klarte å løse et lignende problem ved å erstatte awesome-typescript-loader med ts-loader

Hadde en lignende diskusjon her

https://github.com/webpack-contrib/karma-webpack/issues/331

Relaterte artikler