raoul.nair
raoul.nair

Reputation: 489

Cannot read property 'externalModuleIndicator' of undefined while running unit test using karma and webpack 4

After upgrading my angular project with webpack 4 I am getting below error while running unit test using karma

[at-loader] Using [email protected] from typescript and "tsconfig.json" from demo-app-app\src\tsconfig.json.

[at-loader] Checking started in a separate process...

[at-loader] Checking finished with 1509 errors [at-loader]: Child process failed to process the request: TypeError: Cannot read property 'externalModuleIndicator' of undefined at Object.isExternalModule (demo-app\node_modules\typescript\lib\typescript.js:13733:20) at Object.getAllDependencies (demo-app\node_modules\typescript\lib\typescript.js:75788:46) at Object.getAllDependencies (demo-app\node_modules\typescript\lib\typescript.js:76133:80) at processEmit (demo-app\node_modules\awesome-typescript-loader\src\checker\runtime.ts:451:24) at demo-app\node_modules\awesome-typescript-loader\src\checker\runtime.ts:602:6 at Object.send (demo-app\node_modules\awesome-typescript-loader\src\checker\runtime.ts:48:6) at Checker.req (demo-app\node_modules\awesome-typescript-loader\src\checker\checker.ts:100:15) at Checker.emitFile (demo-app\node_modules\awesome-typescript-loader\src\checker\checker.ts:105:15) at transform (demo-app\node_modules\awesome-typescript-loader\src\index.ts:132:26) at transformationFunction (demo-app\node_modules\awesome-typescript-loader\src\index.ts:74:40) at compiler (demo-app\node_modules\awesome-typescript-loader\src\index.ts:85:21) at Object.loader (demo-app\node_modules\awesome-typescript-loader\src\index.ts:16:12) at LOADER_EXECUTION (demo-app\node_modules\loader-runner\lib\LoaderRunner.js:119:14) at runSyncOrAsync (demo-app\node_modules\loader-runner\lib\LoaderRunner.js:120:4) at iterateNormalLoaders (demo-app\node_modules\loader-runner\lib\LoaderRunner.js:229:2) at iterateNormalLoaders (demo-app\node_modules\loader-runner\lib\LoaderRunner.js:218:10) <--- Last few GCs --->

136168 ms: Mark-sweep 1255.3 (1435.8) -> 1242.3 (1435.8) MB, 893.2 / 0.0 ms [allocation failure] [GC in old space requested]. 137084 ms: Mark-sweep 1242.3 (1435.8) -> 1242.3 (1435.8) MB, 915.6 / 0.0 ms [allocation failure] [GC in old space requested]. 138055 ms: Mark-sweep 1242.3 (1435.8) -> 1248.2 (1408.8) MB, 970.0 / 0.0 ms [last resort gc]. 139026 ms: Mark-sweep 1248.2 (1408.8) -> 1254.0 (1408.8) MB, 971.0 / 0.0 ms [last resort gc].

<--- JS stacktrace --->

==== JS stack trace =========================================

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

Package 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'),
          {}
        )
    ]
};

Please note that I am able to run my angular project without any issue only UT configuration are giving errors.

Upvotes: 4

Views: 7766

Answers (4)

Marina Zubkova
Marina Zubkova

Reputation: 95

Update to [email protected] could resolve 'externalModuleIndicator' issue (but may break something else)

Upvotes: 2

rikkep
rikkep

Reputation: 37

For the Yarn users: run yarn install in the terminal.

Upvotes: 0

Ramees V P
Ramees V P

Reputation: 85

Update with 'npm update' command. it is solved my issue of the above error.

Upvotes: 6

seanforyou23
seanforyou23

Reputation: 126

I was able to resolve a similar issue by replacing awesome-typescript-loader with ts-loader

Had a similar discussion here

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

Upvotes: 2

Related Questions