使用 webpack 4 升级我的 Angular 项目后,我在使用 karma 运行单元测试时遇到错误
[at-loader] 使用 typescript 中的 typescript@2.7.2 和 demo-app-app\src\tsconfig.json 中的“tsconfig.json”。
[at-loader] 检查在单独的进程中开始...
[at-loader] 检查完成,出现 1509 个错误 [at-loader]:子进程无法处理请求:TypeError:无法读取 Object.isExternalModule 处未定义的属性“externalModuleIndicator”(demo-app\node_modules\typescript\lib\typescript .js:13733:20) 在 Object.getAllDependencies (demo-app\node_modules\typescript\lib\typescript.js:75788:46) 在 Object.getAllDependencies (demo-app\node_modules\typescript\lib\typescript.js:76133 :80) 在 processEmit (demo-app\node_modules\awesome-typescript-loader\src\checker\runtime.ts:451:24) 在 demo-app\node_modules\awesome-typescript-loader\src\checker\runtime.ts :602:6 在 Object.send (demo-app\node_modules\awesome-typescript-loader\src\checker\runtime.ts:48:6) 在 Checker.req (demo-app\node_modules\awesome-typescript-loader\ src\checker\checker.ts:100:15) 在 Checker.emitFile (demo-app\node_modules\awesome-typescript-loader\src\checker\checker.ts:105:15) 在变换 (demo-app\node_modules\awesome-typescript-loader\src\index. ts:132:26) 在 transformationFunction (demo-app\node_modules\awesome-typescript-loader\src\index.ts:74:40) 在编译器 (demo-app\node_modules\awesome-typescript-loader\src\index. ts:85:21) 在 Object.loader (demo-app\node_modules\awesome-typescript-loader\src\index.ts:16:12) 在 LOADER_EXECUTION (demo-app\node_modules\loader-runner\lib\LoaderRunner. js:119:14) 在 runSyncOrAsync (demo-app\node_modules\loader-runner\lib\LoaderRunner.js:120:4) 在 iterateNormalLoaders (demo-app\node_modules\loader-runner\lib\LoaderRunner.js:229: 2) 在 iterateNormalLoaders (demo-app\node_modules\loader-runner\lib\LoaderRunner.js:218:10) <--- 最近几次 GC --->
136168 毫秒:标记扫描 1255.3 (1435.8) -> 1242.3 (1435.8) MB,893.2 / 0.0 毫秒 [分配失败] [请求旧空间中的 GC]。137084 毫秒:标记扫描 1242.3 (1435.8) -> 1242.3 (1435.8) MB,915.6 / 0.0 毫秒 [分配失败] [请求旧空间中的 GC]。138055 毫秒:标记扫描 1242.3 (1435.8) -> 1248.2 (1408.8) MB,970.0 / 0.0 毫秒 [最后的 gc]。139026 毫秒:标记扫描 1248.2 (1408.8) -> 1254.0 (1408.8) MB,971.0 / 0.0 毫秒 [最后的 gc]。
<--- JS 堆栈跟踪 --->
==== JS 堆栈跟踪 ==========================================
致命错误:CALL_AND_RETRY_LAST 分配失败 - JavaScript 堆内存不足
包Json:
真棒打字稿加载器:5.0.0-0 业力 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'),
{}
)
]
};
请注意,我能够毫无问题地运行我的 Angular 项目,只有 UT 配置会出错。