TypeError中的错误:无法读取属性'匹配'未定义的

时间:2017-03-22 14:37:48

标签: javascript node.js angular typescript webpack

我正在尝试为Angular 2项目创建一个生产版本。我从ng-build -prod命令中遇到这个错误..

从命令** ng build -prod 登录。**

ERROR in TypeError: Cannot read property 'match' of undefined

suppress-entry-chunks-webpack-plugin.js:40 filterFn
[Angular_whiskey]/[@angular]/cli/plugins/suppress-entry-chunks-webpack-plugin.js:40:91

Array.filter

suppress-entry-chunks-webpack-plugin.js:42 Compilation.compilation.plugin
[Angular_whiskey]/[@angular]/cli/plugins/suppress-entry-chunks-webpack-plugin.js:42:59

Tapable.js:208 Compilation.applyPluginsAsyncWaterfall
[Angular_whiskey]/[tapable]/lib/Tapable.js:208:13

util.js:16 Compilation.tryCatcher
[Angular_whiskey]/[bluebird]/js/release/util.js:16:23

index.js:642
[Angular_whiskey]/[html-webpack-plugin]/index.js:642:12

index.js:152
[Angular_whiskey]/[html-webpack-plugin]/index.js:152:16

util.js:16 tryCatcher
[Angular_whiskey]/[bluebird]/js/release/util.js:16:23

promise.js:512 Promise._settlePromiseFromHandler
[Angular_whiskey]/[bluebird]/js/release/promise.js:512:31

promise.js:569 Promise._settlePromise
[Angular_whiskey]/[bluebird]/js/release/promise.js:569:18

promise.js:614 Promise._settlePromise0
[Angular_whiskey]/[bluebird]/js/release/promise.js:614:10

promise.js:693 Promise._settlePromises
[Angular_whiskey]/[bluebird]/js/release/promise.js:693:18

async.js:133 Async._drainQueue
[Angular_whiskey]/[bluebird]/js/release/async.js:133:16

async.js:143 Async._drainQueues
[Angular_whiskey]/[bluebird]/js/release/async.js:143:10

async.js:17 Immediate.Async.drainQueues
[Angular_whiskey]/[bluebird]/js/release/async.js:17:14

通过 ng-serve 在本地部署应用程序可以正常工作。但是, ng build -prod 不会。任何帮助将非常感激。我认为我的角度包之间存在版本不匹配。

版本。

@angular/cli: 1.0.0-rc.4
node: 7.0.0
os: win32 x64
@angular/cli: 1.0.0-rc.4
@angular/common: 2.4.7
@angular/compiler: 2.4.7
@angular/core: 2.4.7
@angular/forms: 2.4.7
@angular/http: 2.4.7
@angular/platform-browser: 2.4.7
@angular/platform-browser-dynamic: 2.4.7
@angular/router: 3.4.7
@angular/compiler-cli: 4.0.0-rc.5
@ngtools/webpack: 1.2.14

Repro步骤。

ng build -prod

的package.json

{
"name": "angular-whiskey",
"version": "0.0.0",
"license": "MIT",
"angular-cli": {},
"scripts": {
"start": "node server.js",
"lint": "tslint "src/**/*.ts"",
"test": "ng test",
"pree2e": "webdriver-manager update",
"e2e": "protractor",
"postinstall": "ng build --aot -prod"
},
"private": true,
"engines": {
"node": "7.0.0",
"npm": "4.4.1"
},
"dependencies": {
"@angular/cli": "^1.0.0-rc.2",
"@angular/common": "2.4.7",
"@angular/compiler": "2.4.7",
"@angular/core": "2.4.7",
"@angular/forms": "2.4.7",
"@angular/http": "2.4.7",
"@angular/platform-browser": "2.4.7",
"@angular/platform-browser-dynamic": "2.4.7",
"@angular/router": "3.4.7",
"@ng-bootstrap/ng-bootstrap": "^1.0.0-alpha.20",
"@ngtools/webpack": "^1.2.4",
"@types/core-js": "^0.9.37",
"@types/jasmine": "^2.5.38",
"@types/node": "^6.0.65",
"angularfire2": "^2.0.0-beta.7-pre",
"auth0-lock": "^10.13.0",
"bootstrap": "^3.3.7",
"core-js": "^2.4.1",
"express": "^4.15.2",
"firebase": "^3.7.1",
"ng2-bootstrap": "^1.4.0",
"rxjs": "5.0.0-beta.12",
"ts-helpers": "^1.1.1",
"typescript": "2.2.1",
"zone.js": "^0.6.23"
},
"devDependencies": {
"@angular/cli": "^1.0.0-rc.4",
"@angular/compiler-cli": "4.0.0-rc.5",
"@types/core-js": "^0.9.34",
"@types/jasmine": "^2.2.30",
"@types/node": "^6.0.42",
"codelyzer": "1.0.0-beta.1",
"jasmine-core": "2.4.1",
"jasmine-spec-reporter": "2.5.0",
"karma": "1.2.0",
"karma-chrome-launcher": "^2.0.0",
"karma-cli": "^1.0.1",
"karma-jasmine": "^1.0.2",
"karma-remap-istanbul": "^0.2.1",
"node-sass": "^3.10.1",
"protractor": "4.0.9",
"raw-loader": "^0.5.1",
"sass-loader": "^4.0.2",
"ts-node": "1.2.1",
"tslint": "3.13.0",
"typescript": "~2.0.3",
"webdriver-manager": "10.2.5"
}
}

3 个答案:

答案 0 :(得分:0)

  

TypeError中的错误:无法读取未定义

的属性“匹配”

这不是代码中的错误。这是suppress-entry-chunks-webpack-plugin.js:40 filterFn

中的错误

提出角度小组([Angular_whiskey]/[@angular]/cli/plugins/suppress-entry-chunks-webpack-plugin.js

的问题

答案 1 :(得分:0)

我跑了ng eject --prod之后就遇到了这个问题。从'styles'删除'entry'入口点会导致错误消失。谢天谢地,我还没有使用它。

不知道路线的原因。以下是该插件的来源:https://github.com/angular/angular-cli/blob/master/packages/%40angular/cli/plugins/suppress-entry-chunks-webpack-plugin.ts

答案 2 :(得分:-1)

删除package-lock.json文件并运行npm install。

npm install