nativescript 8.9.0-dev.2 → 8.9.0-dev.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config/test-deps-versions-generated.json +1 -1
- package/lib/android-tools-info.js +9 -32
- package/lib/base-package-manager.js +47 -71
- package/lib/bootstrap.js +1 -5
- package/lib/bun-package-manager.js +65 -104
- package/lib/color.js +2 -5
- package/lib/commands/add-platform.js +14 -31
- package/lib/commands/apple-login.js +18 -30
- package/lib/commands/appstore-list.js +34 -46
- package/lib/commands/appstore-upload.js +52 -68
- package/lib/commands/build.js +57 -90
- package/lib/commands/clean.js +161 -197
- package/lib/commands/command-base.js +14 -28
- package/lib/commands/config.js +48 -71
- package/lib/commands/create-project.js +210 -235
- package/lib/commands/debug.js +66 -93
- package/lib/commands/deploy.js +30 -47
- package/lib/commands/embedding/embed.js +33 -59
- package/lib/commands/extensibility/install-extension.js +5 -17
- package/lib/commands/extensibility/list-extensions.js +13 -25
- package/lib/commands/extensibility/uninstall-extension.js +4 -16
- package/lib/commands/fonts.js +30 -42
- package/lib/commands/generate-assets.js +13 -29
- package/lib/commands/generate-help.js +2 -14
- package/lib/commands/generate.js +12 -70
- package/lib/commands/info.js +2 -14
- package/lib/commands/install.js +34 -50
- package/lib/commands/list-platforms.js +14 -26
- package/lib/commands/migrate.js +15 -27
- package/lib/commands/native-add.js +23 -51
- package/lib/commands/platform-clean.js +19 -33
- package/lib/commands/plugin/add-plugin.js +12 -26
- package/lib/commands/plugin/build-plugin.js +31 -45
- package/lib/commands/plugin/create-plugin.js +110 -138
- package/lib/commands/plugin/list-plugins.js +22 -34
- package/lib/commands/plugin/remove-plugin.js +20 -35
- package/lib/commands/plugin/update-plugin.js +20 -34
- package/lib/commands/post-install.js +20 -39
- package/lib/commands/prepare.js +22 -39
- package/lib/commands/preview.js +49 -64
- package/lib/commands/remove-platform.js +7 -19
- package/lib/commands/resources/resources-update.js +13 -28
- package/lib/commands/run.js +55 -77
- package/lib/commands/setup.js +0 -1
- package/lib/commands/start.js +6 -20
- package/lib/commands/test-init.js +123 -138
- package/lib/commands/test.js +67 -97
- package/lib/commands/typings.js +126 -143
- package/lib/commands/update-platform.js +22 -40
- package/lib/commands/update.js +30 -45
- package/lib/commands/widget.js +390 -352
- package/lib/common/bootstrap.js +0 -1
- package/lib/common/child-process.js +53 -75
- package/lib/common/codeGeneration/code-entity.js +1 -2
- package/lib/common/codeGeneration/code-printer.js +1 -2
- package/lib/common/command-params.js +7 -19
- package/lib/common/commands/analytics.js +27 -43
- package/lib/common/commands/autocompletion.js +39 -59
- package/lib/common/commands/device/device-log-stream.js +12 -24
- package/lib/common/commands/device/get-file.js +22 -35
- package/lib/common/commands/device/list-applications.js +12 -24
- package/lib/common/commands/device/list-devices.js +72 -90
- package/lib/common/commands/device/list-files.js +23 -36
- package/lib/common/commands/device/put-file.js +22 -35
- package/lib/common/commands/device/run-application.js +12 -26
- package/lib/common/commands/device/stop-application.js +11 -23
- package/lib/common/commands/device/uninstall-application.js +6 -18
- package/lib/common/commands/doctor.js +2 -3
- package/lib/common/commands/generate-messages.js +17 -29
- package/lib/common/commands/help.js +20 -34
- package/lib/common/commands/package-manager-get.js +6 -18
- package/lib/common/commands/package-manager-set.js +9 -21
- package/lib/common/commands/post-install.js +2 -14
- package/lib/common/commands/preuninstall.js +24 -48
- package/lib/common/commands/proxy/proxy-base.js +8 -23
- package/lib/common/commands/proxy/proxy-clear.js +4 -16
- package/lib/common/commands/proxy/proxy-get.js +3 -15
- package/lib/common/commands/proxy/proxy-set.js +87 -101
- package/lib/common/common-lib.js +0 -1
- package/lib/common/constants.js +11 -22
- package/lib/common/decorators.js +10 -70
- package/lib/common/dispatchers.js +80 -106
- package/lib/common/errors.js +91 -116
- package/lib/common/file-system.js +108 -141
- package/lib/common/header.js +1 -5
- package/lib/common/helpers.js +152 -267
- package/lib/common/host-info.js +37 -54
- package/lib/common/http-client.js +93 -128
- package/lib/common/logger/appenders/cli-appender.js +1 -6
- package/lib/common/logger/appenders/emit-appender.js +1 -6
- package/lib/common/logger/layouts/cli-layout.js +1 -3
- package/lib/common/logger/logger.js +4 -9
- package/lib/common/messages/messages.js +0 -6
- package/lib/common/mobile/android/android-application-manager.js +122 -162
- package/lib/common/mobile/android/android-debug-bridge-result-handler.js +1 -2
- package/lib/common/mobile/android/android-debug-bridge.js +87 -118
- package/lib/common/mobile/android/android-device-file-system.js +98 -135
- package/lib/common/mobile/android/android-device-hash-service.js +50 -78
- package/lib/common/mobile/android/android-device.js +68 -93
- package/lib/common/mobile/android/android-emulator-services.js +105 -131
- package/lib/common/mobile/android/android-ini-file-parser.js +0 -9
- package/lib/common/mobile/android/android-log-filter.js +1 -5
- package/lib/common/mobile/android/android-virtual-device-service.js +76 -123
- package/lib/common/mobile/android/device-android-debug-bridge.js +13 -30
- package/lib/common/mobile/android/genymotion/genymotion-service.js +91 -123
- package/lib/common/mobile/android/genymotion/virtualbox-service.js +64 -92
- package/lib/common/mobile/android/logcat-helper.js +108 -140
- package/lib/common/mobile/application-manager-base.js +84 -113
- package/lib/common/mobile/device-emitter.js +0 -4
- package/lib/common/mobile/device-log-emitter.js +0 -1
- package/lib/common/mobile/device-log-provider-base.js +7 -19
- package/lib/common/mobile/device-log-provider.js +0 -23
- package/lib/common/mobile/device-platforms-constants.js +0 -1
- package/lib/common/mobile/emulator-helper.js +0 -3
- package/lib/common/mobile/ios/device/ios-application-manager.js +79 -111
- package/lib/common/mobile/ios/device/ios-device-file-system.js +78 -106
- package/lib/common/mobile/ios/device/ios-device-operations.js +105 -146
- package/lib/common/mobile/ios/device/ios-device.js +20 -40
- package/lib/common/mobile/ios/ios-device-base.js +58 -82
- package/lib/common/mobile/ios/ios-device-product-name-mapper.js +0 -2
- package/lib/common/mobile/ios/ios-log-filter.js +0 -1
- package/lib/common/mobile/ios/simulator/ios-emulator-services.js +63 -96
- package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +1 -2
- package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +60 -95
- package/lib/common/mobile/ios/simulator/ios-simulator-device.js +27 -48
- package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +37 -63
- package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +24 -36
- package/lib/common/mobile/local-to-device-path-data-factory.js +0 -1
- package/lib/common/mobile/log-filter.js +0 -2
- package/lib/common/mobile/logging-levels.js +0 -1
- package/lib/common/mobile/mobile-core/android-device-discovery.js +43 -64
- package/lib/common/mobile/mobile-core/android-emulator-discovery.js +21 -35
- package/lib/common/mobile/mobile-core/android-process-service.js +143 -214
- package/lib/common/mobile/mobile-core/device-discovery.js +2 -14
- package/lib/common/mobile/mobile-core/devices-service.js +386 -505
- package/lib/common/mobile/mobile-core/ios-device-discovery.js +24 -37
- package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +47 -65
- package/lib/common/mobile/mobile-helper.js +15 -27
- package/lib/common/mobile/wp8/wp8-emulator-services.js +25 -53
- package/lib/common/opener.js +2 -3
- package/lib/common/os-info.js +0 -1
- package/lib/common/plist-parser.js +0 -1
- package/lib/common/project-helper.js +0 -1
- package/lib/common/prompter.js +91 -114
- package/lib/common/queue.js +9 -21
- package/lib/common/resource-loader.js +0 -1
- package/lib/common/services/auto-completion-service.js +40 -65
- package/lib/common/services/cancellation.js +17 -29
- package/lib/common/services/commands-service.js +146 -180
- package/lib/common/services/help-service.js +133 -166
- package/lib/common/services/hooks-service.js +93 -121
- package/lib/common/services/ios-notification-service.js +21 -35
- package/lib/common/services/json-file-settings-service.js +52 -77
- package/lib/common/services/lock-service.js +35 -58
- package/lib/common/services/message-contract-generator.js +35 -47
- package/lib/common/services/messages-service.js +0 -1
- package/lib/common/services/micro-templating-service.js +4 -21
- package/lib/common/services/net-service.js +90 -110
- package/lib/common/services/project-files-manager.js +10 -28
- package/lib/common/services/project-files-provider-base.js +0 -1
- package/lib/common/services/proxy-service.js +13 -25
- package/lib/common/services/qr.js +13 -25
- package/lib/common/services/settings-service.js +1 -2
- package/lib/common/services/xcode-select-service.js +20 -36
- package/lib/common/utils.js +2 -3
- package/lib/common/validators/project-name-validator.js +1 -2
- package/lib/common/validators/validation-result.js +1 -2
- package/lib/common/verify-node-version.js +3 -11
- package/lib/common/yok.js +35 -69
- package/lib/config.js +36 -72
- package/lib/constants-provider.js +0 -1
- package/lib/constants.js +24 -77
- package/lib/controllers/build-controller.js +82 -100
- package/lib/controllers/debug-controller.js +107 -133
- package/lib/controllers/deploy-controller.js +15 -24
- package/lib/controllers/migrate-controller.js +723 -884
- package/lib/controllers/platform-controller.js +71 -94
- package/lib/controllers/prepare-controller.js +232 -274
- package/lib/controllers/run-controller.js +397 -427
- package/lib/controllers/update-controller-base.js +16 -30
- package/lib/controllers/update-controller.js +94 -130
- package/lib/data/build-data.js +0 -1
- package/lib/data/controller-data-base.js +0 -1
- package/lib/data/debug-data.js +0 -1
- package/lib/data/platform-data.js +0 -1
- package/lib/data/prepare-data.js +4 -2
- package/lib/data/run-data.js +0 -1
- package/lib/definitions/project.d.ts +24 -24
- package/lib/detached-processes/cleanup-js-subprocess.js +5 -20
- package/lib/detached-processes/cleanup-process.js +30 -43
- package/lib/detached-processes/file-log-service.js +1 -2
- package/lib/device-path-provider.js +23 -35
- package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +149 -171
- package/lib/device-sockets/ios/notification.js +1 -4
- package/lib/device-sockets/ios/socket-request-executor.js +24 -42
- package/lib/helpers/android-bundle-validator-helper.js +2 -3
- package/lib/helpers/deploy-command-helper.js +44 -50
- package/lib/helpers/key-command-helper.js +6 -17
- package/lib/helpers/livesync-command-helper.js +137 -155
- package/lib/helpers/network-connectivity-validator.js +6 -18
- package/lib/helpers/options-track-helper.js +7 -19
- package/lib/helpers/package-path-helper.js +0 -1
- package/lib/helpers/platform-command-helper.js +101 -127
- package/lib/helpers/version-validator-helper.js +0 -1
- package/lib/key-commands/bootstrap.js +2 -3
- package/lib/key-commands/index.js +154 -205
- package/lib/nativescript-cli-lib-bootstrap.js +0 -4
- package/lib/nativescript-cli-lib.js +0 -1
- package/lib/nativescript-cli.js +6 -24
- package/lib/node/pbxproj-dom-xcode.js +0 -1
- package/lib/node/xcode.js +0 -1
- package/lib/node-package-manager.js +81 -114
- package/lib/options.js +122 -156
- package/lib/package-installation-manager.js +130 -172
- package/lib/package-manager.js +63 -88
- package/lib/platform-command-param.js +4 -16
- package/lib/pnpm-package-manager.js +59 -81
- package/lib/project-data.js +1 -13
- package/lib/providers/project-files-provider.js +1 -2
- package/lib/resolvers/livesync-service-resolver.js +0 -1
- package/lib/services/analytics/analytics-broker-process.js +19 -32
- package/lib/services/analytics/analytics-broker.js +17 -31
- package/lib/services/analytics/analytics-service.js +170 -210
- package/lib/services/analytics/google-analytics-provider.js +43 -59
- package/lib/services/analytics-settings-service.js +15 -37
- package/lib/services/android/android-bundle-tool-service.js +43 -61
- package/lib/services/android/gradle-build-args-service.js +9 -23
- package/lib/services/android/gradle-build-service.js +22 -36
- package/lib/services/android/gradle-command-service.js +22 -36
- package/lib/services/android-device-debug-service.js +90 -123
- package/lib/services/android-plugin-build-service.js +205 -260
- package/lib/services/android-project-service.js +129 -241
- package/lib/services/android-resources-migration-service.js +51 -71
- package/lib/services/apple-portal/apple-portal-application-service.js +46 -64
- package/lib/services/apple-portal/apple-portal-cookie-service.js +0 -1
- package/lib/services/apple-portal/apple-portal-session-service.js +197 -218
- package/lib/services/apple-portal/srp/srp-wrapper.js +43 -61
- package/lib/services/assets-generation/assets-generation-service.js +103 -128
- package/lib/services/build-artifacts-service.js +10 -22
- package/lib/services/build-data-service.js +0 -1
- package/lib/services/build-info-file-service.js +20 -36
- package/lib/services/cleanup-service.js +48 -81
- package/lib/services/cocoapods-platform-manager.js +0 -9
- package/lib/services/cocoapods-service.js +112 -153
- package/lib/services/debug-data-service.js +0 -1
- package/lib/services/debug-service-base.js +0 -7
- package/lib/services/device/device-install-app-service.js +54 -72
- package/lib/services/doctor-service.js +101 -135
- package/lib/services/extensibility-service.js +81 -108
- package/lib/services/files-hash-service.js +26 -44
- package/lib/services/hmr-status-service.js +1 -3
- package/lib/services/info-service.js +0 -1
- package/lib/services/initialize-service.js +37 -54
- package/lib/services/ios/export-options-plist-service.js +38 -55
- package/lib/services/ios/ios-signing-service.js +168 -191
- package/lib/services/ios/spm-service.js +46 -70
- package/lib/services/ios/xcodebuild-args-service.js +77 -103
- package/lib/services/ios/xcodebuild-command-service.js +14 -26
- package/lib/services/ios/xcodebuild-service.js +52 -72
- package/lib/services/ios-debugger-port-service.js +24 -38
- package/lib/services/ios-device-debug-service.js +75 -103
- package/lib/services/ios-entitlements-service.js +31 -43
- package/lib/services/ios-extensions-service.js +18 -30
- package/lib/services/ios-log-filter.js +0 -20
- package/lib/services/ios-native-target-service.js +4 -6
- package/lib/services/ios-project-service.js +452 -603
- package/lib/services/ios-provision-service.js +108 -132
- package/lib/services/ios-watch-app-service.js +21 -33
- package/lib/services/ip-service.js +38 -55
- package/lib/services/itmstransporter-service.js +129 -153
- package/lib/services/karma-execution.js +0 -2
- package/lib/services/livesync/android-device-livesync-service-base.js +31 -49
- package/lib/services/livesync/android-device-livesync-service.js +120 -151
- package/lib/services/livesync/android-device-livesync-sockets-service.js +121 -155
- package/lib/services/livesync/android-livesync-service.js +14 -36
- package/lib/services/livesync/android-livesync-tool.js +90 -117
- package/lib/services/livesync/device-livesync-service-base.js +15 -30
- package/lib/services/livesync/ios-device-livesync-service.js +114 -150
- package/lib/services/livesync/ios-livesync-service.js +42 -60
- package/lib/services/livesync/livesync-socket.js +0 -1
- package/lib/services/livesync/platform-livesync-service-base.js +94 -124
- package/lib/services/livesync-process-data-service.js +0 -1
- package/lib/services/log-parser-service.js +1 -2
- package/lib/services/log-source-map-service.js +30 -56
- package/lib/services/marking-mode-service.js +17 -33
- package/lib/services/metadata-filtering-service.js +0 -1
- package/lib/services/npm-config-service.js +1 -5
- package/lib/services/pacote-service.js +49 -71
- package/lib/services/performance-service.js +2 -4
- package/lib/services/platform/add-platform-service.js +51 -119
- package/lib/services/platform/platform-validation-service.js +22 -34
- package/lib/services/platform/prepare-native-platform-service.js +49 -65
- package/lib/services/platform-environment-requirements.js +27 -43
- package/lib/services/platform-project-service-base.js +0 -1
- package/lib/services/platforms-data-service.js +0 -1
- package/lib/services/plugins-service.js +125 -168
- package/lib/services/prepare-data-service.js +0 -1
- package/lib/services/project-backup-service.js +1 -5
- package/lib/services/project-changes-service.js +124 -152
- package/lib/services/project-cleanup-service.js +64 -79
- package/lib/services/project-config-service.js +73 -102
- package/lib/services/project-data-service.js +108 -154
- package/lib/services/project-name-service.js +28 -44
- package/lib/services/project-service.js +84 -113
- package/lib/services/project-templates-service.js +52 -68
- package/lib/services/qr-code-terminal-service.js +0 -1
- package/lib/services/require-service.js +0 -1
- package/lib/services/start-service.js +41 -60
- package/lib/services/temp-service.js +8 -22
- package/lib/services/terminal-spinner-service.js +15 -28
- package/lib/services/test-execution-service.js +59 -79
- package/lib/services/test-initialization-service.js +2 -6
- package/lib/services/timeline-profiler-service.js +1 -2
- package/lib/services/user-settings-service.js +0 -1
- package/lib/services/versions-service.js +119 -140
- package/lib/services/watch-ignore-list-service.js +0 -1
- package/lib/services/webpack/webpack-compiler-service.js +215 -279
- package/lib/services/xcconfig-service.js +8 -21
- package/lib/services/xcproj-service.js +0 -1
- package/lib/shared-event-bus.js +0 -6
- package/lib/sys-info.js +45 -63
- package/lib/tools/config-manipulation/config-transformer.js +0 -12
- package/lib/tools/node-modules/node-modules-builder.js +16 -28
- package/lib/tools/node-modules/node-modules-dependencies-builder.js +0 -6
- package/lib/yarn-package-manager.js +59 -79
- package/lib/yarn2-package-manager.js +60 -82
- package/package.json +65 -80
- package/node_modules/@npmcli/move-file/LICENSE.md +0 -22
- package/node_modules/@npmcli/move-file/README.md +0 -69
- package/node_modules/@npmcli/move-file/lib/index.js +0 -185
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/LICENSE +0 -21
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/bin/cmd.js +0 -68
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/index.js +0 -31
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/find-made.js +0 -29
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-manual.js +0 -64
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-native.js +0 -39
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/opts-arg.js +0 -23
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/path-arg.js +0 -29
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/use-native.js +0 -10
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/package.json +0 -44
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/readme.markdown +0 -266
- package/node_modules/@npmcli/move-file/package.json +0 -47
- package/node_modules/balanced-match/.github/FUNDING.yml +0 -2
- package/node_modules/balanced-match/LICENSE.md +0 -21
- package/node_modules/balanced-match/README.md +0 -97
- package/node_modules/balanced-match/index.js +0 -62
- package/node_modules/balanced-match/package.json +0 -48
- package/node_modules/concat-map/.travis.yml +0 -4
- package/node_modules/concat-map/LICENSE +0 -18
- package/node_modules/concat-map/README.markdown +0 -62
- package/node_modules/concat-map/example/map.js +0 -6
- package/node_modules/concat-map/index.js +0 -13
- package/node_modules/concat-map/package.json +0 -43
- package/node_modules/concat-map/test/map.js +0 -39
- package/node_modules/fs.realpath/LICENSE +0 -43
- package/node_modules/fs.realpath/README.md +0 -33
- package/node_modules/fs.realpath/index.js +0 -66
- package/node_modules/fs.realpath/old.js +0 -303
- package/node_modules/fs.realpath/package.json +0 -26
- package/node_modules/inflight/LICENSE +0 -15
- package/node_modules/inflight/README.md +0 -37
- package/node_modules/inflight/inflight.js +0 -54
- package/node_modules/inflight/package.json +0 -29
- package/node_modules/inherits/LICENSE +0 -16
- package/node_modules/inherits/README.md +0 -42
- package/node_modules/inherits/inherits.js +0 -9
- package/node_modules/inherits/inherits_browser.js +0 -27
- package/node_modules/inherits/package.json +0 -29
- package/node_modules/once/LICENSE +0 -15
- package/node_modules/once/README.md +0 -79
- package/node_modules/once/once.js +0 -42
- package/node_modules/once/package.json +0 -33
- package/node_modules/path-is-absolute/index.js +0 -20
- package/node_modules/path-is-absolute/license +0 -21
- package/node_modules/path-is-absolute/package.json +0 -43
- package/node_modules/path-is-absolute/readme.md +0 -59
- package/node_modules/rimraf/LICENSE +0 -15
- package/node_modules/rimraf/README.md +0 -101
- package/node_modules/rimraf/bin.js +0 -68
- package/node_modules/rimraf/node_modules/brace-expansion/LICENSE +0 -21
- package/node_modules/rimraf/node_modules/brace-expansion/README.md +0 -129
- package/node_modules/rimraf/node_modules/brace-expansion/index.js +0 -201
- package/node_modules/rimraf/node_modules/brace-expansion/package.json +0 -47
- package/node_modules/rimraf/node_modules/glob/LICENSE +0 -21
- package/node_modules/rimraf/node_modules/glob/README.md +0 -378
- package/node_modules/rimraf/node_modules/glob/common.js +0 -238
- package/node_modules/rimraf/node_modules/glob/glob.js +0 -790
- package/node_modules/rimraf/node_modules/glob/package.json +0 -55
- package/node_modules/rimraf/node_modules/glob/sync.js +0 -486
- package/node_modules/rimraf/node_modules/minimatch/LICENSE +0 -15
- package/node_modules/rimraf/node_modules/minimatch/README.md +0 -230
- package/node_modules/rimraf/node_modules/minimatch/minimatch.js +0 -947
- package/node_modules/rimraf/node_modules/minimatch/package.json +0 -33
- package/node_modules/rimraf/package.json +0 -32
- package/node_modules/rimraf/rimraf.js +0 -360
- package/node_modules/stringify-package/LICENSE +0 -13
- package/node_modules/stringify-package/README.md +0 -55
- package/node_modules/stringify-package/index.js +0 -18
- package/node_modules/stringify-package/package.json +0 -38
- package/node_modules/wrappy/LICENSE +0 -15
- package/node_modules/wrappy/README.md +0 -36
- package/node_modules/wrappy/package.json +0 -29
- package/node_modules/wrappy/wrappy.js +0 -33
|
@@ -5,15 +5,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
9
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
10
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
11
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
12
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
13
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
14
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
15
|
-
});
|
|
16
|
-
};
|
|
17
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
9
|
exports.WebpackCompilerService = void 0;
|
|
19
10
|
const path = require("path");
|
|
@@ -25,8 +16,7 @@ const constants_1 = require("../../constants");
|
|
|
25
16
|
const yok_1 = require("../../common/yok");
|
|
26
17
|
const package_path_helper_1 = require("../../helpers/package-path-helper");
|
|
27
18
|
class WebpackCompilerService extends events_1.EventEmitter {
|
|
28
|
-
constructor($options, $errors, $childProcess, $fs, $hooksService, $hostInfo, $logger, $mobileHelper, $cleanupService, $packageManager, $packageInstallationManager
|
|
29
|
-
) {
|
|
19
|
+
constructor($options, $errors, $childProcess, $fs, $hooksService, $hostInfo, $logger, $mobileHelper, $cleanupService, $packageManager, $packageInstallationManager) {
|
|
30
20
|
super();
|
|
31
21
|
this.$options = $options;
|
|
32
22
|
this.$errors = $errors;
|
|
@@ -42,216 +32,192 @@ class WebpackCompilerService extends events_1.EventEmitter {
|
|
|
42
32
|
this.webpackProcesses = {};
|
|
43
33
|
this.expectedHashes = {};
|
|
44
34
|
}
|
|
45
|
-
compileWithWatch(platformData, projectData, prepareData) {
|
|
46
|
-
return
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
// first compilation can be ignored because it will be synced regardless
|
|
69
|
-
// handling it here would trigger 2 syncs
|
|
70
|
-
if (isFirstWebpackWatchCompilation) {
|
|
71
|
-
isFirstWebpackWatchCompilation = false;
|
|
72
|
-
resolve(childProcess);
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
// if ((message as IWebpackMessage).type === "hmr-status") {
|
|
76
|
-
// // we pass message through our event-bus to be handled wherever needed
|
|
77
|
-
// // in this case webpack-hmr-status-service listens for this event
|
|
78
|
-
// this.$sharedEventBus.emit("webpack:hmr-status", message);
|
|
79
|
-
// return;
|
|
80
|
-
// }
|
|
81
|
-
return this.handleHMRMessage(message, platformData, projectData, prepareData);
|
|
82
|
-
}
|
|
83
|
-
if (message === "Webpack compilation complete.") {
|
|
84
|
-
this.$logger.info("Webpack build done!");
|
|
35
|
+
async compileWithWatch(platformData, projectData, prepareData) {
|
|
36
|
+
return new Promise(async (resolve, reject) => {
|
|
37
|
+
if (this.webpackProcesses[platformData.platformNameLowerCase]) {
|
|
38
|
+
resolve(void 0);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
let isFirstWebpackWatchCompilation = true;
|
|
42
|
+
prepareData.watch = true;
|
|
43
|
+
try {
|
|
44
|
+
const childProcess = await this.startWebpackProcess(platformData, projectData, prepareData);
|
|
45
|
+
childProcess.stdout.on("data", function (data) {
|
|
46
|
+
process.stdout.write(data);
|
|
47
|
+
});
|
|
48
|
+
childProcess.stderr.on("data", function (data) {
|
|
49
|
+
process.stderr.write(data);
|
|
50
|
+
});
|
|
51
|
+
childProcess.on("message", (message) => {
|
|
52
|
+
this.$logger.trace("Message from webpack", message);
|
|
53
|
+
if (typeof message === "object" &&
|
|
54
|
+
"version" in message &&
|
|
55
|
+
"type" in message) {
|
|
56
|
+
if (isFirstWebpackWatchCompilation) {
|
|
57
|
+
isFirstWebpackWatchCompilation = false;
|
|
85
58
|
resolve(childProcess);
|
|
59
|
+
return;
|
|
86
60
|
}
|
|
87
|
-
message
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
result = {
|
|
103
|
-
emittedFiles: message.emittedFiles,
|
|
104
|
-
fallbackFiles: [],
|
|
105
|
-
hash: "",
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
const files = result.emittedFiles.map((file) => path.join(platformData.appDestinationDirectoryPath, this.$options.hostProjectModuleName, file));
|
|
109
|
-
const fallbackFiles = result.fallbackFiles.map((file) => path.join(platformData.appDestinationDirectoryPath, this.$options.hostProjectModuleName, file));
|
|
110
|
-
const data = {
|
|
111
|
-
files,
|
|
112
|
-
hasOnlyHotUpdateFiles: files.every((f) => f.indexOf("hot-update") > -1),
|
|
113
|
-
hmrData: {
|
|
114
|
-
hash: result.hash,
|
|
115
|
-
fallbackFiles,
|
|
116
|
-
},
|
|
117
|
-
platform: platformData.platformNameLowerCase,
|
|
118
|
-
};
|
|
119
|
-
this.$logger.trace("Generated data from webpack message:", data);
|
|
120
|
-
// the hash of the compilation is the same as the previous one and there are only hot updates produced
|
|
121
|
-
if (data.hasOnlyHotUpdateFiles && previousHash === message.hash) {
|
|
122
|
-
return;
|
|
123
|
-
}
|
|
124
|
-
if (data.files.length) {
|
|
125
|
-
this.emit(constants_1.WEBPACK_COMPILATION_COMPLETE, data);
|
|
126
|
-
}
|
|
61
|
+
return this.handleHMRMessage(message, platformData, projectData, prepareData);
|
|
62
|
+
}
|
|
63
|
+
if (message === "Webpack compilation complete.") {
|
|
64
|
+
this.$logger.info("Webpack build done!");
|
|
65
|
+
resolve(childProcess);
|
|
66
|
+
}
|
|
67
|
+
message = message;
|
|
68
|
+
if (message.emittedFiles) {
|
|
69
|
+
if (isFirstWebpackWatchCompilation) {
|
|
70
|
+
isFirstWebpackWatchCompilation = false;
|
|
71
|
+
this.expectedHashes[platformData.platformNameLowerCase] =
|
|
72
|
+
prepareData.hmr ? message.hash : "";
|
|
73
|
+
return;
|
|
127
74
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
reject(err);
|
|
133
|
-
});
|
|
134
|
-
childProcess.on("close", (arg) => __awaiter(this, void 0, void 0, function* () {
|
|
135
|
-
yield this.$cleanupService.removeKillProcess(childProcess.pid.toString());
|
|
136
|
-
const exitCode = typeof arg === "number" ? arg : arg && arg.code;
|
|
137
|
-
this.$logger.trace(`Webpack process exited with code ${exitCode} when we expected it to be long living with watch.`);
|
|
138
|
-
const error = new Error(`Executing webpack failed with exit code ${exitCode}.`);
|
|
139
|
-
error.code = exitCode;
|
|
140
|
-
delete this.webpackProcesses[platformData.platformNameLowerCase];
|
|
141
|
-
reject(error);
|
|
142
|
-
}));
|
|
143
|
-
}
|
|
144
|
-
catch (err) {
|
|
145
|
-
reject(err);
|
|
146
|
-
}
|
|
147
|
-
}));
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
compileWithoutWatch(platformData, projectData, prepareData) {
|
|
151
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
152
|
-
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
|
|
153
|
-
if (this.webpackProcesses[platformData.platformNameLowerCase]) {
|
|
154
|
-
resolve();
|
|
155
|
-
return;
|
|
156
|
-
}
|
|
157
|
-
try {
|
|
158
|
-
const childProcess = yield this.startWebpackProcess(platformData, projectData, prepareData);
|
|
159
|
-
childProcess.on("error", (err) => {
|
|
160
|
-
this.$logger.trace(`Unable to start webpack process in non-watch mode. Error is: ${err}`);
|
|
161
|
-
delete this.webpackProcesses[platformData.platformNameLowerCase];
|
|
162
|
-
reject(err);
|
|
163
|
-
});
|
|
164
|
-
childProcess.on("close", (arg) => __awaiter(this, void 0, void 0, function* () {
|
|
165
|
-
yield this.$cleanupService.removeKillProcess(childProcess.pid.toString());
|
|
166
|
-
delete this.webpackProcesses[platformData.platformNameLowerCase];
|
|
167
|
-
const exitCode = typeof arg === "number" ? arg : arg && arg.code;
|
|
168
|
-
if (exitCode === 0) {
|
|
169
|
-
resolve();
|
|
75
|
+
const previousHash = this.expectedHashes[platformData.platformNameLowerCase];
|
|
76
|
+
let result;
|
|
77
|
+
if (prepareData.hmr) {
|
|
78
|
+
result = this.getUpdatedEmittedFiles(message.emittedFiles, message.chunkFiles, message.hash, platformData.platformNameLowerCase);
|
|
170
79
|
}
|
|
171
80
|
else {
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
81
|
+
result = {
|
|
82
|
+
emittedFiles: message.emittedFiles,
|
|
83
|
+
fallbackFiles: [],
|
|
84
|
+
hash: "",
|
|
85
|
+
};
|
|
175
86
|
}
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
87
|
+
const files = result.emittedFiles.map((file) => path.join(platformData.appDestinationDirectoryPath, this.$options.hostProjectModuleName, file));
|
|
88
|
+
const fallbackFiles = result.fallbackFiles.map((file) => path.join(platformData.appDestinationDirectoryPath, this.$options.hostProjectModuleName, file));
|
|
89
|
+
const data = {
|
|
90
|
+
files,
|
|
91
|
+
hasOnlyHotUpdateFiles: files.every((f) => f.indexOf("hot-update") > -1),
|
|
92
|
+
hmrData: {
|
|
93
|
+
hash: result.hash,
|
|
94
|
+
fallbackFiles,
|
|
95
|
+
},
|
|
96
|
+
platform: platformData.platformNameLowerCase,
|
|
97
|
+
};
|
|
98
|
+
this.$logger.trace("Generated data from webpack message:", data);
|
|
99
|
+
if (data.hasOnlyHotUpdateFiles && previousHash === message.hash) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
if (data.files.length) {
|
|
103
|
+
this.emit(constants_1.WEBPACK_COMPILATION_COMPLETE, data);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
childProcess.on("error", (err) => {
|
|
108
|
+
this.$logger.trace(`Unable to start webpack process in watch mode. Error is: ${err}`);
|
|
109
|
+
delete this.webpackProcesses[platformData.platformNameLowerCase];
|
|
179
110
|
reject(err);
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
111
|
+
});
|
|
112
|
+
childProcess.on("close", async (arg) => {
|
|
113
|
+
await this.$cleanupService.removeKillProcess(childProcess.pid.toString());
|
|
114
|
+
const exitCode = typeof arg === "number" ? arg : arg && arg.code;
|
|
115
|
+
this.$logger.trace(`Webpack process exited with code ${exitCode} when we expected it to be long living with watch.`);
|
|
116
|
+
const error = new Error(`Executing webpack failed with exit code ${exitCode}.`);
|
|
117
|
+
error.code = exitCode;
|
|
118
|
+
delete this.webpackProcesses[platformData.platformNameLowerCase];
|
|
119
|
+
reject(error);
|
|
120
|
+
});
|
|
188
121
|
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
for (let i = 0; i < webpackedPlatforms.length; i++) {
|
|
192
|
-
yield this.stopWebpackForPlatform(webpackedPlatforms[i]);
|
|
193
|
-
}
|
|
122
|
+
catch (err) {
|
|
123
|
+
reject(err);
|
|
194
124
|
}
|
|
195
125
|
});
|
|
196
126
|
}
|
|
197
|
-
|
|
198
|
-
return
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
const currentPackageManager = yield this.$packageManager.getPackageManagerName();
|
|
203
|
-
const res = currentPackageManager !== constants_1.PackageManagers.pnpm;
|
|
204
|
-
return res;
|
|
205
|
-
});
|
|
206
|
-
}
|
|
207
|
-
startWebpackProcess(platformData, projectData, prepareData) {
|
|
208
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
209
|
-
if (!this.$fs.exists(projectData.webpackConfigPath)) {
|
|
210
|
-
this.$errors.fail(`The webpack configuration file ${projectData.webpackConfigPath} does not exist. Ensure the file exists, or update the path in ${constants_1.CONFIG_FILE_NAME_DISPLAY}.`);
|
|
211
|
-
}
|
|
212
|
-
const envData = this.buildEnvData(platformData.platformNameLowerCase, projectData, prepareData);
|
|
213
|
-
const envParams = yield this.buildEnvCommandLineParams(envData, platformData, projectData, prepareData);
|
|
214
|
-
const additionalNodeArgs = semver.major(process.version) <= 8 ? ["--harmony"] : [];
|
|
215
|
-
if (yield this.shouldUsePreserveSymlinksOption()) {
|
|
216
|
-
additionalNodeArgs.push("--preserve-symlinks");
|
|
217
|
-
}
|
|
218
|
-
if (process.arch === "x64") {
|
|
219
|
-
additionalNodeArgs.unshift("--max_old_space_size=4096");
|
|
127
|
+
async compileWithoutWatch(platformData, projectData, prepareData) {
|
|
128
|
+
return new Promise(async (resolve, reject) => {
|
|
129
|
+
if (this.webpackProcesses[platformData.platformNameLowerCase]) {
|
|
130
|
+
resolve();
|
|
131
|
+
return;
|
|
220
132
|
}
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
Object.assign(options.env, { APPDATA: process.env.appData });
|
|
241
|
-
}
|
|
242
|
-
if (this.$options.hostProjectPath) {
|
|
243
|
-
Object.assign(options.env, {
|
|
244
|
-
USER_PROJECT_PLATFORMS_ANDROID: this.$options.hostProjectPath,
|
|
245
|
-
USER_PROJECT_PLATFORMS_ANDROID_MODULE: this.$options.hostProjectModuleName,
|
|
246
|
-
USER_PROJECT_PLATFORMS_IOS: this.$options.hostProjectPath,
|
|
133
|
+
try {
|
|
134
|
+
const childProcess = await this.startWebpackProcess(platformData, projectData, prepareData);
|
|
135
|
+
childProcess.on("error", (err) => {
|
|
136
|
+
this.$logger.trace(`Unable to start webpack process in non-watch mode. Error is: ${err}`);
|
|
137
|
+
delete this.webpackProcesses[platformData.platformNameLowerCase];
|
|
138
|
+
reject(err);
|
|
139
|
+
});
|
|
140
|
+
childProcess.on("close", async (arg) => {
|
|
141
|
+
await this.$cleanupService.removeKillProcess(childProcess.pid.toString());
|
|
142
|
+
delete this.webpackProcesses[platformData.platformNameLowerCase];
|
|
143
|
+
const exitCode = typeof arg === "number" ? arg : arg && arg.code;
|
|
144
|
+
if (exitCode === 0) {
|
|
145
|
+
resolve();
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
const error = new Error(`Executing webpack failed with exit code ${exitCode}.`);
|
|
149
|
+
error.code = exitCode;
|
|
150
|
+
reject(error);
|
|
151
|
+
}
|
|
247
152
|
});
|
|
248
153
|
}
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
return childProcess;
|
|
154
|
+
catch (err) {
|
|
155
|
+
reject(err);
|
|
156
|
+
}
|
|
253
157
|
});
|
|
254
158
|
}
|
|
159
|
+
async stopWebpackCompiler(platform) {
|
|
160
|
+
if (platform) {
|
|
161
|
+
await this.stopWebpackForPlatform(platform);
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
const webpackedPlatforms = Object.keys(this.webpackProcesses);
|
|
165
|
+
for (let i = 0; i < webpackedPlatforms.length; i++) {
|
|
166
|
+
await this.stopWebpackForPlatform(webpackedPlatforms[i]);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
async shouldUsePreserveSymlinksOption() {
|
|
171
|
+
const currentPackageManager = await this.$packageManager.getPackageManagerName();
|
|
172
|
+
const res = currentPackageManager !== constants_1.PackageManagers.pnpm;
|
|
173
|
+
return res;
|
|
174
|
+
}
|
|
175
|
+
async startWebpackProcess(platformData, projectData, prepareData) {
|
|
176
|
+
if (!this.$fs.exists(projectData.webpackConfigPath)) {
|
|
177
|
+
this.$errors.fail(`The webpack configuration file ${projectData.webpackConfigPath} does not exist. Ensure the file exists, or update the path in ${constants_1.CONFIG_FILE_NAME_DISPLAY}.`);
|
|
178
|
+
}
|
|
179
|
+
const envData = this.buildEnvData(platformData.platformNameLowerCase, projectData, prepareData);
|
|
180
|
+
const envParams = await this.buildEnvCommandLineParams(envData, platformData, projectData, prepareData);
|
|
181
|
+
const additionalNodeArgs = semver.major(process.version) <= 8 ? ["--harmony"] : [];
|
|
182
|
+
if (await this.shouldUsePreserveSymlinksOption()) {
|
|
183
|
+
additionalNodeArgs.push("--preserve-symlinks");
|
|
184
|
+
}
|
|
185
|
+
if (process.arch === "x64") {
|
|
186
|
+
additionalNodeArgs.unshift("--max_old_space_size=4096");
|
|
187
|
+
}
|
|
188
|
+
const args = [
|
|
189
|
+
...additionalNodeArgs,
|
|
190
|
+
this.getWebpackExecutablePath(projectData),
|
|
191
|
+
this.isWebpack5(projectData) ? `build` : null,
|
|
192
|
+
`--config=${projectData.webpackConfigPath}`,
|
|
193
|
+
...envParams,
|
|
194
|
+
].filter(Boolean);
|
|
195
|
+
if (prepareData.watch) {
|
|
196
|
+
args.push("--watch");
|
|
197
|
+
}
|
|
198
|
+
const stdio = prepareData.watch ? ["ipc"] : "inherit";
|
|
199
|
+
const options = {
|
|
200
|
+
cwd: projectData.projectDir,
|
|
201
|
+
stdio,
|
|
202
|
+
};
|
|
203
|
+
options.env = {
|
|
204
|
+
NATIVESCRIPT_WEBPACK_ENV: JSON.stringify(envData),
|
|
205
|
+
};
|
|
206
|
+
if (this.$hostInfo.isWindows) {
|
|
207
|
+
Object.assign(options.env, { APPDATA: process.env.appData });
|
|
208
|
+
}
|
|
209
|
+
if (this.$options.hostProjectPath) {
|
|
210
|
+
Object.assign(options.env, {
|
|
211
|
+
USER_PROJECT_PLATFORMS_ANDROID: this.$options.hostProjectPath,
|
|
212
|
+
USER_PROJECT_PLATFORMS_ANDROID_MODULE: this.$options.hostProjectModuleName,
|
|
213
|
+
USER_PROJECT_PLATFORMS_IOS: this.$options.hostProjectPath,
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
const childProcess = this.$childProcess.spawn(process.execPath, args, options);
|
|
217
|
+
this.webpackProcesses[platformData.platformNameLowerCase] = childProcess;
|
|
218
|
+
await this.$cleanupService.addKillProcess(childProcess.pid.toString());
|
|
219
|
+
return childProcess;
|
|
220
|
+
}
|
|
255
221
|
buildEnvData(platform, projectData, prepareData) {
|
|
256
222
|
var _a, _b, _c;
|
|
257
223
|
const { env } = prepareData;
|
|
@@ -264,28 +230,16 @@ class WebpackCompilerService extends events_1.EventEmitter {
|
|
|
264
230
|
});
|
|
265
231
|
envData.verbose = envData.verbose || this.$logger.isVerbose();
|
|
266
232
|
envData.production = envData.production || prepareData.release;
|
|
267
|
-
// add the config file name to the env data so the webpack process can read the
|
|
268
|
-
// correct config file when resolving the CLI lib and the config service
|
|
269
|
-
// we are explicitly setting it to false to force using the defaults
|
|
270
233
|
envData.config =
|
|
271
234
|
(_b = (_a = process.env.NATIVESCRIPT_CONFIG_NAME) !== null && _a !== void 0 ? _a : this.$options.config) !== null && _b !== void 0 ? _b : "false";
|
|
272
|
-
// explicitly set the env variable
|
|
273
235
|
process.env.NATIVESCRIPT_CONFIG_NAME = envData.config;
|
|
274
|
-
// The snapshot generation is wrongly located in the Webpack plugin.
|
|
275
|
-
// It should be moved in the Native Prepare of the CLI or a Gradle task in the Runtime.
|
|
276
|
-
// As a workaround, we skip the mksnapshot, xxd and android-ndk calls based on skipNativePrepare.
|
|
277
|
-
// In this way the plugin will prepare only the snapshot JS entry without any native prepare and
|
|
278
|
-
// we will able to execute cloud builds with snapshot without having any local snapshot or Docker setup.
|
|
279
|
-
// TODO: Remove this flag when we remove the native part from the plugin.
|
|
280
236
|
envData.skipSnapshotTools =
|
|
281
237
|
prepareData.nativePrepare && prepareData.nativePrepare.skipNativePrepare;
|
|
282
|
-
// only set sourceMap if not explicitly set through a flag
|
|
283
238
|
if (typeof ((_c = prepareData === null || prepareData === void 0 ? void 0 : prepareData.env) === null || _c === void 0 ? void 0 : _c.sourceMap) === "undefined") {
|
|
284
239
|
if (!prepareData.release) {
|
|
285
240
|
envData.sourceMap = true;
|
|
286
241
|
}
|
|
287
242
|
}
|
|
288
|
-
// convert string to boolean
|
|
289
243
|
if (envData.sourceMap === "true" || envData.sourceMap === "false") {
|
|
290
244
|
envData.sourceMap = envData.sourceMap === "true";
|
|
291
245
|
}
|
|
@@ -294,60 +248,49 @@ class WebpackCompilerService extends events_1.EventEmitter {
|
|
|
294
248
|
}
|
|
295
249
|
return envData;
|
|
296
250
|
}
|
|
297
|
-
buildEnvCommandLineParams(envData, platformData, projectData, prepareData) {
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
if (
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
envFlagNames.splice(envFlagNames.indexOf("snapshot"), 1);
|
|
307
|
-
}
|
|
308
|
-
else if (this.$hostInfo.isWindows) {
|
|
309
|
-
const minWebpackPluginWithWinSnapshotsVersion = "1.3.0";
|
|
310
|
-
const installedWebpackPluginVersion = yield this.$packageInstallationManager.getInstalledDependencyVersion(constants_1.WEBPACK_PLUGIN_NAME, projectData.projectDir);
|
|
311
|
-
const hasWebpackPluginWithWinSnapshotsSupport = !!installedWebpackPluginVersion
|
|
312
|
-
? semver.gte(semver.coerce(installedWebpackPluginVersion), minWebpackPluginWithWinSnapshotsVersion)
|
|
313
|
-
: true;
|
|
314
|
-
if (!hasWebpackPluginWithWinSnapshotsSupport) {
|
|
315
|
-
this.$errors.fail(`In order to generate Snapshots on Windows, please upgrade your Webpack plugin version (npm i ${constants_1.WEBPACK_PLUGIN_NAME}@latest).`);
|
|
316
|
-
}
|
|
317
|
-
}
|
|
251
|
+
async buildEnvCommandLineParams(envData, platformData, projectData, prepareData) {
|
|
252
|
+
const envFlagNames = Object.keys(envData);
|
|
253
|
+
const canSnapshot = prepareData.release &&
|
|
254
|
+
this.$mobileHelper.isAndroidPlatform(platformData.normalizedPlatformName);
|
|
255
|
+
if (envData && envData.snapshot) {
|
|
256
|
+
if (!canSnapshot) {
|
|
257
|
+
this.$logger.warn("Stripping the snapshot flag. " +
|
|
258
|
+
"Bear in mind that snapshot is only available in Android release builds.");
|
|
259
|
+
envFlagNames.splice(envFlagNames.indexOf("snapshot"), 1);
|
|
318
260
|
}
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
261
|
+
else if (this.$hostInfo.isWindows) {
|
|
262
|
+
const minWebpackPluginWithWinSnapshotsVersion = "1.3.0";
|
|
263
|
+
const installedWebpackPluginVersion = await this.$packageInstallationManager.getInstalledDependencyVersion(constants_1.WEBPACK_PLUGIN_NAME, projectData.projectDir);
|
|
264
|
+
const hasWebpackPluginWithWinSnapshotsSupport = !!installedWebpackPluginVersion
|
|
265
|
+
? semver.gte(semver.coerce(installedWebpackPluginVersion), minWebpackPluginWithWinSnapshotsVersion)
|
|
266
|
+
: true;
|
|
267
|
+
if (!hasWebpackPluginWithWinSnapshotsSupport) {
|
|
268
|
+
this.$errors.fail(`In order to generate Snapshots on Windows, please upgrade your Webpack plugin version (npm i ${constants_1.WEBPACK_PLUGIN_NAME}@latest).`);
|
|
324
269
|
}
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
const args = [];
|
|
273
|
+
envFlagNames.map((item) => {
|
|
274
|
+
let envValue = envData[item];
|
|
275
|
+
if (typeof envValue === "undefined") {
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
if (typeof envValue === "boolean") {
|
|
279
|
+
if (envValue) {
|
|
280
|
+
args.push(`--env.${item}`);
|
|
329
281
|
}
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
envValue.map((value) => args.push(`--env.${item}=${value}`));
|
|
282
|
+
}
|
|
283
|
+
else {
|
|
284
|
+
if (!Array.isArray(envValue)) {
|
|
285
|
+
envValue = [envValue];
|
|
335
286
|
}
|
|
336
|
-
|
|
337
|
-
|
|
287
|
+
envValue.map((value) => args.push(`--env.${item}=${value}`));
|
|
288
|
+
}
|
|
338
289
|
});
|
|
290
|
+
return args;
|
|
339
291
|
}
|
|
340
292
|
getUpdatedEmittedFiles(allEmittedFiles, chunkFiles, nextHash, platform) {
|
|
341
293
|
const currentHash = this.getCurrentHotUpdateHash(allEmittedFiles);
|
|
342
|
-
// This logic is needed as there are already cases when webpack doesn't emit any files physically.
|
|
343
|
-
// We've set noEmitOnErrors in webpack.config.js based on noEmitOnError from tsconfig.json,
|
|
344
|
-
// so webpack doesn't emit any files when noEmitOnErrors: true is set in webpack.config.js and
|
|
345
|
-
// there is a compilation error in the source code. On the other side, hmr generates new hot-update files
|
|
346
|
-
// on every change and the hash of the next hmr update is written inside hot-update.json file.
|
|
347
|
-
// Although webpack doesn't emit any files, hmr hash is still generated. The hash is generated per compilation no matter
|
|
348
|
-
// if files will be emitted or not. This way, the first successful compilation after fixing the compilation error generates
|
|
349
|
-
// a hash that is not the same as the one expected in the latest emitted hot-update.json file.
|
|
350
|
-
// As a result, the hmr chain is broken and the changes are not applied.
|
|
351
294
|
const isHashValid = nextHash
|
|
352
295
|
? this.expectedHashes[platform] === currentHash
|
|
353
296
|
: true;
|
|
@@ -366,7 +309,6 @@ class WebpackCompilerService extends events_1.EventEmitter {
|
|
|
366
309
|
let hotHash;
|
|
367
310
|
const hotUpdateScripts = emittedFiles.filter((x) => x.endsWith(".hot-update.js"));
|
|
368
311
|
if (hotUpdateScripts && hotUpdateScripts.length) {
|
|
369
|
-
// the hash is the same for each hot update in the current compilation
|
|
370
312
|
const hotUpdateName = hotUpdateScripts[0];
|
|
371
313
|
const matcher = /^(.+)\.(.+)\.hot-update/gm;
|
|
372
314
|
const matches = matcher.exec(hotUpdateName);
|
|
@@ -374,19 +316,16 @@ class WebpackCompilerService extends events_1.EventEmitter {
|
|
|
374
316
|
}
|
|
375
317
|
return hotHash || "";
|
|
376
318
|
}
|
|
377
|
-
stopWebpackForPlatform(platform) {
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
}
|
|
386
|
-
});
|
|
319
|
+
async stopWebpackForPlatform(platform) {
|
|
320
|
+
this.$logger.trace(`Stopping webpack watch for platform ${platform}.`);
|
|
321
|
+
const webpackProcess = this.webpackProcesses[platform];
|
|
322
|
+
await this.$cleanupService.removeKillProcess(webpackProcess.pid.toString());
|
|
323
|
+
if (webpackProcess) {
|
|
324
|
+
webpackProcess.kill("SIGINT");
|
|
325
|
+
delete this.webpackProcesses[platform];
|
|
326
|
+
}
|
|
387
327
|
}
|
|
388
328
|
handleHMRMessage(message, platformData, projectData, prepareData) {
|
|
389
|
-
// handle new webpack hmr packets
|
|
390
329
|
this.$logger.trace("Received message from webpack process:", message);
|
|
391
330
|
if (message.type !== "compilation") {
|
|
392
331
|
return;
|
|
@@ -394,7 +333,6 @@ class WebpackCompilerService extends events_1.EventEmitter {
|
|
|
394
333
|
this.$logger.trace("Webpack build done!");
|
|
395
334
|
const files = message.data.emittedAssets.map((asset) => path.join(platformData.appDestinationDirectoryPath, this.$options.hostProjectModuleName, asset));
|
|
396
335
|
const staleFiles = message.data.staleAssets.map((asset) => path.join(platformData.appDestinationDirectoryPath, this.$options.hostProjectModuleName, asset));
|
|
397
|
-
// extract last hash from emitted filenames
|
|
398
336
|
const lastHash = (() => {
|
|
399
337
|
const absoluteFileNameWithLastHash = files.find((fileName) => fileName.endsWith("hot-update.js"));
|
|
400
338
|
if (!absoluteFileNameWithLastHash) {
|
|
@@ -407,7 +345,6 @@ class WebpackCompilerService extends events_1.EventEmitter {
|
|
|
407
345
|
}
|
|
408
346
|
})();
|
|
409
347
|
if (!files.length) {
|
|
410
|
-
// ignore compilations if no new files are emitted
|
|
411
348
|
return;
|
|
412
349
|
}
|
|
413
350
|
this.emit(constants_1.WEBPACK_COMPILATION_COMPLETE, {
|
|
@@ -452,9 +389,8 @@ class WebpackCompilerService extends events_1.EventEmitter {
|
|
|
452
389
|
return false;
|
|
453
390
|
}
|
|
454
391
|
}
|
|
392
|
+
exports.WebpackCompilerService = WebpackCompilerService;
|
|
455
393
|
__decorate([
|
|
456
394
|
(0, decorators_1.performanceLog)()
|
|
457
395
|
], WebpackCompilerService.prototype, "startWebpackProcess", null);
|
|
458
|
-
exports.WebpackCompilerService = WebpackCompilerService;
|
|
459
396
|
yok_1.injector.register("webpackCompilerService", WebpackCompilerService);
|
|
460
|
-
//# sourceMappingURL=webpack-compiler-service.js.map
|