У меня есть приложение Ionic / Cordova, которое я наконец-то (получил время) пересмотреть и добавить некоторые модификации, так что прошло много времени с тех пор, как я в последний раз строил на своем Mac (я обычно разрабатываю для Windows)
Я сделал свои модификации, и он прекрасно собирается для платформы Android, на моем компьютере с Windows.
После Mac я также запустил сборку Android (я использую Mac в качестве официального компьютера для сборки длякак iOS, так и Android), я не получаю следующую ошибку на этапе веб-упаковки ...
[INFO] Running app-scripts build: --prod --platform android --target cordova
[08:03:39] build prod started ...
[08:03:39] clean started ...
[08:03:39] clean finished in 23 ms
[08:03:39] copy started ...
[08:03:39] ngc started ...
[08:03:59] ngc finished in 19.74 s
[08:03:59] preprocess started ...
[08:03:59] deeplinks started ...
[08:04:00] deeplinks finished in 563 ms
[08:04:00] optimization started ...
[08:04:01] copy finished in 21.05 s
[08:04:16] optimization finished in 15.95 s
[08:04:16] preprocess finished in 16.52 s
[08:04:16] webpack started ...
Error: ./node_modules/d3-quadtree/src/quadtree.js
Module build failed: TypeError: Cannot read property 'get' of undefined
at isNameOfExportsOrModuleExportsAliasDeclaration (/Users/Development/dev/build/myapp/trunk/node_modules/typescript/lib/typescript.js:23318:47)
at bindStaticPropertyAssignment (/Users/Development/dev/build/myapp/trunk/node_modules/typescript/lib/typescript.js:23396:17)
at bindWorker (/Users/Development/dev/build/myapp/trunk/node_modules/typescript/lib/typescript.js:23079:29)
at bind (/Users/Development/dev/build/myapp/trunk/node_modules/typescript/lib/typescript.js:22974:13)
at visitNode (/Users/Development/dev/build/myapp/trunk/node_modules/typescript/lib/typescript.js:14662:20)
at Object.forEachChild (/Users/Development/dev/build/myapp/trunk/node_modules/typescript/lib/typescript.js:14725:21)
at bindEachChild (/Users/Development/dev/build/myapp/trunk/node_modules/typescript/lib/typescript.js:21771:16)
at bindChildrenWorker (/Users/Development/dev/build/myapp/trunk/node_modules/typescript/lib/typescript.js:21852:21)
at bindChildren (/Users/Development/dev/build/myapp/trunk/node_modules/typescript/lib/typescript.js:21746:17)
at bind (/Users/Development/dev/build/myapp/trunk/node_modules/typescript/lib/typescript.js:22985:21)
@ ./node_modules/d3-quadtree/src/index.js 1:0-49
@ ./node_modules/d3/index.js
@ ./src/pages/performance/performance.ts
@ ./src/pages/performance/performance.ngfactory.ts
@ ./src/app/app.module.ngfactory.ts
@ ./src/app/main.ts
at new BuildError (/Users/Development/dev/build/myapp/trunk/node_modules/@ionic/app-scripts/dist/util/errors.js:16:28)
at callback (/Users/Development/dev/build/myapp/trunk/node_modules/@ionic/app-scripts/dist/webpack.js:119:28)
at emitRecords.err (/Users/Development/dev/build/myapp/trunk/node_modules/webpack/lib/Compiler.js:265:13)
at Compiler.emitRecords (/Users/Development/dev/build/myapp/trunk/node_modules/webpack/lib/Compiler.js:371:38)
at emitAssets.err (/Users/Development/dev/build/myapp/trunk/node_modules/webpack/lib/Compiler.js:258:10)
at applyPluginsAsyncSeries1.err (/Users/Development/dev/build/myapp/trunk/node_modules/webpack/lib/Compiler.js:364:12)
at next (/Users/Development/dev/build/myapp/trunk/node_modules/tapable/lib/Tapable.js:218:11)
at Compiler.compiler.plugin (/Users/Development/dev/build/myapp/trunk/node_modules/webpack/lib/performance/SizeLimitsPlugin.js:99:4)
at Compiler.applyPluginsAsyncSeries1 (/Users/Development/dev/build/myapp/trunk/node_modules/tapable/lib/Tapable.js:222:13)
at Compiler.afterEmit (/Users/Development/dev/build/myapp/trunk/node_modules/webpack/lib/Compiler.js:361:9)
В стеке вызовов я вижу строку node_modules/d3/index.js
.У меня были другие проблемы со сборками, связанные с C3 / D3, но эта кажется другой.И он прекрасно работает на моей машине с Windows.
Я обновляю Node (так как он был намного старше, чем на моей Windows), но это не имело никакого значения.
Моя среда (работает с Ionic info)на Mac выглядит следующим образом ...
ionic info
cli packages: (/usr/local/lib/node_modules)
@ionic/cli-utils : 1.13.1
ionic (Ionic CLI) : 3.13.1
global packages:
cordova (Cordova CLI) : 7.0.1
local packages:
@ionic/app-scripts : 2.1.4
Cordova Platforms : android 6.2.3 ios 4.3.1 windows 4.4.3
Ionic Framework : ionic-angular 3.6.1
System:
Android SDK Tools : 25.2.5
ios-deploy : 1.9.1
ios-sim : 5.0.13
Node : v8.12.0
npm : 6.4.1
OS : macOS High Sierra
Xcode : Xcode 9.4.1 Build version 9F2000
Misc:
backend : legacy
Мой package.json имеет следующее ...
"dependencies": {
"@angular/animations": "4.1.3",
"@angular/common": "4.1.3",
"@angular/compiler": "4.1.3",
"@angular/compiler-cli": "4.1.3",
"@angular/core": "4.1.3",
"@angular/forms": "4.1.3",
"@angular/http": "4.1.3",
"@angular/platform-browser": "4.1.3",
"@angular/platform-browser-dynamic": "4.1.3",
"@ionic-native/app-version": "^3.8.0",
"@ionic-native/core": "3.6.1",
"@ionic-native/device": "^3.8.0",
"@ionic-native/file": "^3.7.0",
"@ionic-native/network": "^3.8.0",
"@ionic-native/social-sharing": "^3.7.0",
"@ionic-native/splash-screen": "3.6.1",
"@ionic-native/status-bar": "3.6.1",
"@ionic-native/toast": "^3.8.0",
"@ionic/storage": "2.0.1",
"c3": "git://github.com/masayuki0812/c3.git",
"cordova-android": "latest",
"cordova-plugin-app-version": "^0.1.9",
"cordova-plugin-compat": "^1.0.0",
"cordova-plugin-console": "^1.0.5",
"cordova-plugin-device": "^1.1.6",
"cordova-plugin-email-composer": "git+https://github.com/3spin/cordova-plugin-email-composer.git",
"cordova-plugin-file": "^4.3.3",
"cordova-plugin-ios-disableshaketoedit": "^1.0.0",
"cordova-plugin-network-information": "^1.3.3",
"cordova-plugin-splashscreen": "^4.0.3",
"cordova-plugin-statusbar": "^2.2.1",
"cordova-plugin-whitelist": "^1.3.1",
"cordova-plugin-wkwebview-engine": "https://github.com/driftyco/cordova-plugin-wkwebview-engine.git",
"cordova-plugin-x-socialsharing": "^5.1.8",
"cordova-plugin-x-toast": "^2.6.0",
"cordova-windows": "^5.0.0",
"cordova-windows-capability-localnetwork": "^0.1.1",
"es6-promise-plugin": "^4.1.0",
"ionic-angular": "3.6.1",
"ionic-plugin-keyboard": "^2.2.1",
"ionicons": "3.0.0",
"js-logger": "^1.3.0",
"jslogger": "^1.0.3",
"jszip": "^3.1.3",
"lodash": "^4.17.4",
"moment": "^2.17.1",
"moment-duration-format": "^1.3.0",
"ng2-translate": "^5.0.0",
"rxjs": "5.1.1",
"semaphore-async-await": "^1.3.2",
"sw-toolbox": "3.6.0",
"zone.js": "0.8.10"
},
"devDependencies": {
"@ionic/app-scripts": "2.1.4",
"@ionic/cli-plugin-proxy": "1.3.0",
"@types/c3": "^0.4.41",
"@types/jasmine": "^2.5.54",
"@types/jszip": "0.0.32",
"@types/lodash": "^4.14.51",
"@types/moment-duration-format": "^1.3.1",
"@types/node": "^7.0.43",
"angular2-template-loader": "^0.6.2",
"codecov": "^1.0.1",
"html-loader": "^0.5.1",
"install": "^0.8.7",
"istanbul-instrumenter-loader": "^3.0.0",
"jasmine": "^2.8.0",
"jasmine-spec-reporter": "^4.2.1",
"karma": "^1.7.1",
"karma-chrome-launcher": "^2.2.0",
"karma-coverage-istanbul-reporter": "^1.3.0",
"karma-jasmine": "^1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"karma-sourcemap-loader": "^0.3.7",
"karma-webpack": "^2.0.4",
"null-loader": "^0.1.1",
"protractor": "^5.1.2",
"ts-loader": "^2.3.7",
"ts-node": "^2.1.2",
"tslint": "^4.4.2",
"tslint-eslint-rules": "^3.3.0",
"typescript": "2.3.0"
},
Я знаю, что это немного более старая версия Ionic / Angular,но я оставался с этим, не дожидаясь обновления до Ionic 4, так как я знаю, что все (до этого) работало нормально.2.3.0
TypeScript объясняется тем, что в то время у меня была еще одна ошибка компиляции TypeScript с 2.3.3
, возвращаясь к 2.3.0
исправлено.
Еще раз, я не получить это на моем компьютере с Windows.
Кто-нибудь есть какие-либо идеи о том, что вызывает эту ошибку, или как отследить ее, и как я могу исправить?
Заранее спасибо!