nativescript 8.9.0-dev.2 → 8.9.0-dev.4
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/docs/man_pages/project/configuration/widget-ios.md +24 -0
- package/docs/man_pages/project/configuration/widget.md +24 -0
- package/docs/man_pages/start.md +1 -1
- package/lib/android-tools-info.js +11 -22
- package/lib/base-package-manager.js +53 -70
- package/lib/bun-package-manager.js +75 -98
- package/lib/color.js +4 -4
- package/lib/commands/add-platform.js +14 -30
- package/lib/commands/apple-login.js +18 -29
- package/lib/commands/appstore-list.js +34 -45
- package/lib/commands/appstore-upload.js +54 -67
- package/lib/commands/build.js +55 -87
- package/lib/commands/clean.js +169 -184
- package/lib/commands/command-base.js +14 -27
- package/lib/commands/config.js +49 -68
- package/lib/commands/create-project.js +215 -234
- package/lib/commands/debug.js +66 -88
- package/lib/commands/deploy.js +28 -44
- package/lib/commands/embedding/embed.js +37 -56
- package/lib/commands/extensibility/install-extension.js +5 -16
- package/lib/commands/extensibility/list-extensions.js +13 -24
- package/lib/commands/extensibility/uninstall-extension.js +4 -15
- package/lib/commands/fonts.js +30 -41
- package/lib/commands/generate-assets.js +13 -28
- package/lib/commands/generate-help.js +2 -13
- package/lib/commands/generate.js +49 -60
- package/lib/commands/info.js +2 -13
- package/lib/commands/install.js +34 -49
- package/lib/commands/list-platforms.js +14 -25
- package/lib/commands/migrate.js +15 -26
- package/lib/commands/native-add.js +23 -46
- package/lib/commands/platform-clean.js +19 -32
- package/lib/commands/plugin/add-plugin.js +12 -25
- package/lib/commands/plugin/build-plugin.js +31 -44
- package/lib/commands/plugin/create-plugin.js +114 -137
- package/lib/commands/plugin/list-plugins.js +22 -33
- package/lib/commands/plugin/remove-plugin.js +21 -34
- package/lib/commands/plugin/update-plugin.js +20 -33
- package/lib/commands/post-install.js +25 -38
- package/lib/commands/prepare.js +19 -35
- package/lib/commands/preview.js +50 -63
- package/lib/commands/remove-platform.js +7 -18
- package/lib/commands/resources/resources-update.js +14 -27
- package/lib/commands/run.js +55 -76
- package/lib/commands/start.js +6 -19
- package/lib/commands/test-init.js +126 -137
- package/lib/commands/test.js +72 -95
- package/lib/commands/typings.js +126 -142
- package/lib/commands/update-platform.js +26 -39
- package/lib/commands/update.js +31 -44
- package/lib/commands/widget.js +408 -357
- package/lib/common/child-process.js +53 -72
- package/lib/common/codeGeneration/code-entity.js +1 -1
- package/lib/common/codeGeneration/code-printer.js +1 -1
- package/lib/common/command-params.js +7 -18
- package/lib/common/commands/analytics.js +29 -42
- package/lib/common/commands/autocompletion.js +41 -58
- package/lib/common/commands/device/device-log-stream.js +12 -23
- package/lib/common/commands/device/get-file.js +23 -34
- package/lib/common/commands/device/list-applications.js +12 -23
- package/lib/common/commands/device/list-devices.js +72 -87
- package/lib/common/commands/device/list-files.js +24 -35
- package/lib/common/commands/device/put-file.js +23 -34
- package/lib/common/commands/device/run-application.js +12 -25
- package/lib/common/commands/device/stop-application.js +11 -22
- package/lib/common/commands/device/uninstall-application.js +6 -17
- package/lib/common/commands/generate-messages.js +17 -28
- package/lib/common/commands/help.js +20 -33
- package/lib/common/commands/package-manager-get.js +6 -17
- package/lib/common/commands/package-manager-set.js +9 -20
- package/lib/common/commands/post-install.js +2 -13
- package/lib/common/commands/preuninstall.js +27 -42
- package/lib/common/commands/proxy/proxy-base.js +11 -22
- package/lib/common/commands/proxy/proxy-clear.js +4 -15
- package/lib/common/commands/proxy/proxy-get.js +3 -14
- package/lib/common/commands/proxy/proxy-set.js +87 -100
- package/lib/common/constants.js +11 -11
- package/lib/common/decorators.js +10 -22
- package/lib/common/dispatchers.js +84 -101
- package/lib/common/errors.js +92 -107
- package/lib/common/file-system.js +110 -132
- package/lib/common/header.js +1 -2
- package/lib/common/helpers.js +149 -178
- package/lib/common/host-info.js +40 -53
- package/lib/common/http-client.js +104 -119
- package/lib/common/logger/appenders/cli-appender.js +1 -2
- package/lib/common/logger/appenders/emit-appender.js +1 -2
- package/lib/common/logger/layouts/cli-layout.js +1 -2
- package/lib/common/logger/logger.js +4 -4
- package/lib/common/mobile/android/android-application-manager.js +138 -159
- package/lib/common/mobile/android/android-debug-bridge-result-handler.js +1 -1
- package/lib/common/mobile/android/android-debug-bridge.js +92 -117
- package/lib/common/mobile/android/android-device-file-system.js +101 -134
- package/lib/common/mobile/android/android-device-hash-service.js +52 -77
- package/lib/common/mobile/android/android-device.js +73 -90
- package/lib/common/mobile/android/android-emulator-services.js +105 -130
- package/lib/common/mobile/android/android-log-filter.js +1 -1
- package/lib/common/mobile/android/android-virtual-device-service.js +78 -99
- package/lib/common/mobile/android/device-android-debug-bridge.js +13 -29
- package/lib/common/mobile/android/genymotion/genymotion-service.js +94 -121
- package/lib/common/mobile/android/genymotion/virtualbox-service.js +74 -91
- package/lib/common/mobile/android/logcat-helper.js +114 -133
- package/lib/common/mobile/application-manager-base.js +89 -112
- package/lib/common/mobile/device-log-provider-base.js +7 -18
- package/lib/common/mobile/ios/device/ios-application-manager.js +79 -108
- package/lib/common/mobile/ios/device/ios-device-file-system.js +78 -105
- package/lib/common/mobile/ios/device/ios-device-operations.js +106 -143
- package/lib/common/mobile/ios/device/ios-device.js +20 -36
- package/lib/common/mobile/ios/ios-device-base.js +58 -81
- package/lib/common/mobile/ios/simulator/ios-emulator-services.js +66 -95
- package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +1 -1
- package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +61 -90
- package/lib/common/mobile/ios/simulator/ios-simulator-device.js +31 -47
- package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +37 -62
- package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +24 -35
- package/lib/common/mobile/mobile-core/android-device-discovery.js +44 -63
- package/lib/common/mobile/mobile-core/android-emulator-discovery.js +23 -34
- package/lib/common/mobile/mobile-core/android-process-service.js +174 -213
- package/lib/common/mobile/mobile-core/device-discovery.js +2 -13
- package/lib/common/mobile/mobile-core/devices-service.js +400 -450
- package/lib/common/mobile/mobile-core/ios-device-discovery.js +25 -36
- package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +49 -64
- package/lib/common/mobile/mobile-helper.js +15 -26
- package/lib/common/mobile/wp8/wp8-emulator-services.js +25 -52
- package/lib/common/opener.js +2 -2
- package/lib/common/prompter.js +91 -106
- package/lib/common/queue.js +9 -20
- package/lib/common/services/auto-completion-service.js +40 -53
- package/lib/common/services/cancellation.js +17 -28
- package/lib/common/services/commands-service.js +156 -179
- package/lib/common/services/help-service.js +130 -155
- package/lib/common/services/hooks-service.js +99 -114
- package/lib/common/services/ios-notification-service.js +21 -34
- package/lib/common/services/json-file-settings-service.js +56 -75
- package/lib/common/services/lock-service.js +35 -52
- package/lib/common/services/message-contract-generator.js +35 -46
- package/lib/common/services/micro-templating-service.js +6 -17
- package/lib/common/services/net-service.js +92 -109
- package/lib/common/services/project-files-manager.js +10 -23
- package/lib/common/services/proxy-service.js +13 -24
- package/lib/common/services/qr.js +13 -24
- package/lib/common/services/settings-service.js +1 -1
- package/lib/common/services/xcode-select-service.js +20 -35
- package/lib/common/utils.js +2 -2
- package/lib/common/validators/project-name-validator.js +1 -1
- package/lib/common/validators/validation-result.js +1 -1
- package/lib/common/verify-node-version.js +2 -3
- package/lib/common/yok.js +25 -38
- package/lib/config.js +41 -56
- package/lib/constants.js +24 -24
- package/lib/controllers/build-controller.js +82 -99
- package/lib/controllers/debug-controller.js +111 -132
- package/lib/controllers/deploy-controller.js +15 -23
- package/lib/controllers/migrate-controller.js +780 -853
- package/lib/controllers/platform-controller.js +74 -89
- package/lib/controllers/prepare-controller.js +241 -270
- package/lib/controllers/run-controller.js +411 -425
- package/lib/controllers/update-controller-base.js +16 -29
- package/lib/controllers/update-controller.js +101 -126
- package/lib/data/prepare-data.js +4 -1
- package/lib/definitions/project.d.ts +24 -24
- package/lib/detached-processes/cleanup-js-subprocess.js +3 -12
- package/lib/detached-processes/cleanup-process.js +16 -25
- package/lib/device-path-provider.js +23 -34
- package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +155 -170
- package/lib/device-sockets/ios/notification.js +1 -1
- package/lib/device-sockets/ios/socket-request-executor.js +26 -41
- package/lib/helpers/android-bundle-validator-helper.js +1 -1
- package/lib/helpers/deploy-command-helper.js +44 -49
- package/lib/helpers/key-command-helper.js +4 -13
- package/lib/helpers/livesync-command-helper.js +138 -153
- package/lib/helpers/network-connectivity-validator.js +6 -17
- package/lib/helpers/options-track-helper.js +6 -17
- package/lib/helpers/platform-command-helper.js +103 -124
- package/lib/key-commands/index.js +150 -200
- package/lib/nativescript-cli.js +5 -14
- package/lib/node-package-manager.js +90 -113
- package/lib/options.js +4 -13
- package/lib/package-installation-manager.js +132 -167
- package/lib/package-manager.js +64 -87
- package/lib/platform-command-param.js +4 -15
- package/lib/pnpm-package-manager.js +60 -79
- package/lib/project-data.js +1 -1
- package/lib/providers/project-files-provider.js +1 -1
- package/lib/services/analytics/analytics-broker-process.js +13 -22
- package/lib/services/analytics/analytics-broker.js +17 -30
- package/lib/services/analytics/analytics-service.js +165 -201
- package/lib/services/analytics/google-analytics-provider.js +41 -56
- package/lib/services/analytics-settings-service.js +15 -32
- package/lib/services/android/android-bundle-tool-service.js +43 -60
- package/lib/services/android/gradle-build-args-service.js +10 -21
- package/lib/services/android/gradle-build-service.js +22 -35
- package/lib/services/android/gradle-command-service.js +22 -35
- package/lib/services/android-device-debug-service.js +92 -119
- package/lib/services/android-plugin-build-service.js +219 -245
- package/lib/services/android-project-service.js +134 -179
- package/lib/services/android-resources-migration-service.js +57 -70
- package/lib/services/apple-portal/apple-portal-application-service.js +46 -63
- package/lib/services/apple-portal/apple-portal-session-service.js +196 -215
- package/lib/services/apple-portal/srp/srp-wrapper.js +45 -60
- package/lib/services/assets-generation/assets-generation-service.js +114 -128
- package/lib/services/build-artifacts-service.js +9 -20
- package/lib/services/build-info-file-service.js +20 -35
- package/lib/services/cleanup-service.js +47 -76
- package/lib/services/cocoapods-service.js +124 -145
- package/lib/services/device/device-install-app-service.js +54 -71
- package/lib/services/doctor-service.js +106 -125
- package/lib/services/extensibility-service.js +87 -106
- package/lib/services/files-hash-service.js +26 -43
- package/lib/services/hmr-status-service.js +1 -1
- package/lib/services/initialize-service.js +38 -51
- package/lib/services/ios/export-options-plist-service.js +41 -54
- package/lib/services/ios/ios-signing-service.js +171 -190
- package/lib/services/ios/spm-service.js +52 -65
- package/lib/services/ios/xcodebuild-args-service.js +77 -94
- package/lib/services/ios/xcodebuild-command-service.js +14 -25
- package/lib/services/ios/xcodebuild-service.js +52 -71
- package/lib/services/ios-debugger-port-service.js +24 -37
- package/lib/services/ios-device-debug-service.js +75 -102
- package/lib/services/ios-entitlements-service.js +31 -42
- package/lib/services/ios-extensions-service.js +18 -29
- package/lib/services/ios-project-service.js +530 -591
- package/lib/services/ios-provision-service.js +110 -131
- package/lib/services/ios-watch-app-service.js +21 -32
- package/lib/services/ip-service.js +39 -54
- package/lib/services/itmstransporter-service.js +129 -152
- package/lib/services/livesync/android-device-livesync-service-base.js +31 -48
- package/lib/services/livesync/android-device-livesync-service.js +121 -150
- package/lib/services/livesync/android-device-livesync-sockets-service.js +123 -154
- package/lib/services/livesync/android-livesync-service.js +14 -35
- package/lib/services/livesync/android-livesync-tool.js +90 -113
- package/lib/services/livesync/device-livesync-service-base.js +16 -29
- package/lib/services/livesync/ios-device-livesync-service.js +120 -149
- package/lib/services/livesync/ios-livesync-service.js +43 -59
- package/lib/services/livesync/platform-livesync-service-base.js +98 -123
- package/lib/services/log-parser-service.js +1 -1
- package/lib/services/log-source-map-service.js +31 -42
- package/lib/services/marking-mode-service.js +17 -30
- package/lib/services/npm-config-service.js +1 -1
- package/lib/services/pacote-service.js +54 -69
- package/lib/services/performance-service.js +1 -1
- package/lib/services/platform/add-platform-service.js +57 -78
- package/lib/services/platform/platform-validation-service.js +22 -33
- package/lib/services/platform/prepare-native-platform-service.js +51 -64
- package/lib/services/platform-environment-requirements.js +27 -38
- package/lib/services/plugins-service.js +126 -151
- package/lib/services/project-backup-service.js +1 -1
- package/lib/services/project-changes-service.js +126 -143
- package/lib/services/project-cleanup-service.js +65 -78
- package/lib/services/project-config-service.js +78 -88
- package/lib/services/project-data-service.js +112 -129
- package/lib/services/project-name-service.js +28 -43
- package/lib/services/project-service.js +90 -109
- package/lib/services/project-templates-service.js +52 -67
- package/lib/services/start-service.js +41 -59
- package/lib/services/temp-service.js +8 -21
- package/lib/services/terminal-spinner-service.js +15 -26
- package/lib/services/test-execution-service.js +64 -77
- package/lib/services/test-initialization-service.js +2 -2
- package/lib/services/timeline-profiler-service.js +1 -1
- package/lib/services/versions-service.js +120 -139
- package/lib/services/webpack/webpack-compiler-service.js +228 -251
- package/lib/services/xcconfig-service.js +8 -19
- package/lib/sys-info.js +45 -62
- package/lib/tools/node-modules/node-modules-builder.js +16 -27
- package/lib/yarn-package-manager.js +59 -78
- package/lib/yarn2-package-manager.js +62 -81
- package/package.json +67 -82
- 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");
|
|
@@ -42,216 +33,206 @@ class WebpackCompilerService extends events_1.EventEmitter {
|
|
|
42
33
|
this.webpackProcesses = {};
|
|
43
34
|
this.expectedHashes = {};
|
|
44
35
|
}
|
|
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
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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!");
|
|
36
|
+
async compileWithWatch(platformData, projectData, prepareData) {
|
|
37
|
+
return new Promise(async (resolve, reject) => {
|
|
38
|
+
if (this.webpackProcesses[platformData.platformNameLowerCase]) {
|
|
39
|
+
resolve(void 0);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
let isFirstWebpackWatchCompilation = true;
|
|
43
|
+
prepareData.watch = true;
|
|
44
|
+
try {
|
|
45
|
+
const childProcess = await this.startWebpackProcess(platformData, projectData, prepareData);
|
|
46
|
+
childProcess.stdout.on("data", function (data) {
|
|
47
|
+
process.stdout.write(data);
|
|
48
|
+
});
|
|
49
|
+
childProcess.stderr.on("data", function (data) {
|
|
50
|
+
process.stderr.write(data);
|
|
51
|
+
});
|
|
52
|
+
childProcess.on("message", (message) => {
|
|
53
|
+
this.$logger.trace("Message from webpack", message);
|
|
54
|
+
// if we are on webpack5 - we handle HMR in a slightly different way
|
|
55
|
+
if (typeof message === "object" &&
|
|
56
|
+
"version" in message &&
|
|
57
|
+
"type" in message) {
|
|
58
|
+
// first compilation can be ignored because it will be synced regardless
|
|
59
|
+
// handling it here would trigger 2 syncs
|
|
60
|
+
if (isFirstWebpackWatchCompilation) {
|
|
61
|
+
isFirstWebpackWatchCompilation = false;
|
|
85
62
|
resolve(childProcess);
|
|
63
|
+
return;
|
|
86
64
|
}
|
|
87
|
-
message
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
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
|
-
}
|
|
65
|
+
// if ((message as IWebpackMessage).type === "hmr-status") {
|
|
66
|
+
// // we pass message through our event-bus to be handled wherever needed
|
|
67
|
+
// // in this case webpack-hmr-status-service listens for this event
|
|
68
|
+
// this.$sharedEventBus.emit("webpack:hmr-status", message);
|
|
69
|
+
// return;
|
|
70
|
+
// }
|
|
71
|
+
return this.handleHMRMessage(message, platformData, projectData, prepareData);
|
|
72
|
+
}
|
|
73
|
+
if (message === "Webpack compilation complete.") {
|
|
74
|
+
this.$logger.info("Webpack build done!");
|
|
75
|
+
resolve(childProcess);
|
|
76
|
+
}
|
|
77
|
+
message = message;
|
|
78
|
+
if (message.emittedFiles) {
|
|
79
|
+
if (isFirstWebpackWatchCompilation) {
|
|
80
|
+
isFirstWebpackWatchCompilation = false;
|
|
81
|
+
this.expectedHashes[platformData.platformNameLowerCase] =
|
|
82
|
+
prepareData.hmr ? message.hash : "";
|
|
83
|
+
return;
|
|
127
84
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
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();
|
|
85
|
+
// Persist the previousHash value before calling `this.getUpdatedEmittedFiles` as it will modify the expectedHashes object with the current hash
|
|
86
|
+
const previousHash = this.expectedHashes[platformData.platformNameLowerCase];
|
|
87
|
+
let result;
|
|
88
|
+
if (prepareData.hmr) {
|
|
89
|
+
result = this.getUpdatedEmittedFiles(message.emittedFiles, message.chunkFiles, message.hash, platformData.platformNameLowerCase);
|
|
170
90
|
}
|
|
171
91
|
else {
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
92
|
+
result = {
|
|
93
|
+
emittedFiles: message.emittedFiles,
|
|
94
|
+
fallbackFiles: [],
|
|
95
|
+
hash: "",
|
|
96
|
+
};
|
|
175
97
|
}
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
98
|
+
const files = result.emittedFiles.map((file) => path.join(platformData.appDestinationDirectoryPath, this.$options.hostProjectModuleName, file));
|
|
99
|
+
const fallbackFiles = result.fallbackFiles.map((file) => path.join(platformData.appDestinationDirectoryPath, this.$options.hostProjectModuleName, file));
|
|
100
|
+
const data = {
|
|
101
|
+
files,
|
|
102
|
+
hasOnlyHotUpdateFiles: files.every((f) => f.indexOf("hot-update") > -1),
|
|
103
|
+
hmrData: {
|
|
104
|
+
hash: result.hash,
|
|
105
|
+
fallbackFiles,
|
|
106
|
+
},
|
|
107
|
+
platform: platformData.platformNameLowerCase,
|
|
108
|
+
};
|
|
109
|
+
this.$logger.trace("Generated data from webpack message:", data);
|
|
110
|
+
// the hash of the compilation is the same as the previous one and there are only hot updates produced
|
|
111
|
+
if (data.hasOnlyHotUpdateFiles && previousHash === message.hash) {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
if (data.files.length) {
|
|
115
|
+
this.emit(constants_1.WEBPACK_COMPILATION_COMPLETE, data);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
childProcess.on("error", (err) => {
|
|
120
|
+
this.$logger.trace(`Unable to start webpack process in watch mode. Error is: ${err}`);
|
|
121
|
+
delete this.webpackProcesses[platformData.platformNameLowerCase];
|
|
179
122
|
reject(err);
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
123
|
+
});
|
|
124
|
+
childProcess.on("close", async (arg) => {
|
|
125
|
+
await this.$cleanupService.removeKillProcess(childProcess.pid.toString());
|
|
126
|
+
const exitCode = typeof arg === "number" ? arg : arg && arg.code;
|
|
127
|
+
this.$logger.trace(`Webpack process exited with code ${exitCode} when we expected it to be long living with watch.`);
|
|
128
|
+
const error = new Error(`Executing webpack failed with exit code ${exitCode}.`);
|
|
129
|
+
error.code = exitCode;
|
|
130
|
+
delete this.webpackProcesses[platformData.platformNameLowerCase];
|
|
131
|
+
reject(error);
|
|
132
|
+
});
|
|
188
133
|
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
for (let i = 0; i < webpackedPlatforms.length; i++) {
|
|
192
|
-
yield this.stopWebpackForPlatform(webpackedPlatforms[i]);
|
|
193
|
-
}
|
|
134
|
+
catch (err) {
|
|
135
|
+
reject(err);
|
|
194
136
|
}
|
|
195
137
|
});
|
|
196
138
|
}
|
|
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");
|
|
139
|
+
async compileWithoutWatch(platformData, projectData, prepareData) {
|
|
140
|
+
return new Promise(async (resolve, reject) => {
|
|
141
|
+
if (this.webpackProcesses[platformData.platformNameLowerCase]) {
|
|
142
|
+
resolve();
|
|
143
|
+
return;
|
|
220
144
|
}
|
|
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,
|
|
145
|
+
try {
|
|
146
|
+
const childProcess = await this.startWebpackProcess(platformData, projectData, prepareData);
|
|
147
|
+
childProcess.on("error", (err) => {
|
|
148
|
+
this.$logger.trace(`Unable to start webpack process in non-watch mode. Error is: ${err}`);
|
|
149
|
+
delete this.webpackProcesses[platformData.platformNameLowerCase];
|
|
150
|
+
reject(err);
|
|
151
|
+
});
|
|
152
|
+
childProcess.on("close", async (arg) => {
|
|
153
|
+
await this.$cleanupService.removeKillProcess(childProcess.pid.toString());
|
|
154
|
+
delete this.webpackProcesses[platformData.platformNameLowerCase];
|
|
155
|
+
const exitCode = typeof arg === "number" ? arg : arg && arg.code;
|
|
156
|
+
if (exitCode === 0) {
|
|
157
|
+
resolve();
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
const error = new Error(`Executing webpack failed with exit code ${exitCode}.`);
|
|
161
|
+
error.code = exitCode;
|
|
162
|
+
reject(error);
|
|
163
|
+
}
|
|
247
164
|
});
|
|
248
165
|
}
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
return childProcess;
|
|
166
|
+
catch (err) {
|
|
167
|
+
reject(err);
|
|
168
|
+
}
|
|
253
169
|
});
|
|
254
170
|
}
|
|
171
|
+
async stopWebpackCompiler(platform) {
|
|
172
|
+
if (platform) {
|
|
173
|
+
await this.stopWebpackForPlatform(platform);
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
const webpackedPlatforms = Object.keys(this.webpackProcesses);
|
|
177
|
+
for (let i = 0; i < webpackedPlatforms.length; i++) {
|
|
178
|
+
await this.stopWebpackForPlatform(webpackedPlatforms[i]);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
async shouldUsePreserveSymlinksOption() {
|
|
183
|
+
// pnpm does not require symlink (https://github.com/nodejs/node-eps/issues/46#issuecomment-277373566)
|
|
184
|
+
// and it also does not work in some cases.
|
|
185
|
+
// Check https://github.com/NativeScript/nativescript-cli/issues/5259 for more information
|
|
186
|
+
const currentPackageManager = await this.$packageManager.getPackageManagerName();
|
|
187
|
+
const res = currentPackageManager !== constants_1.PackageManagers.pnpm;
|
|
188
|
+
return res;
|
|
189
|
+
}
|
|
190
|
+
async startWebpackProcess(platformData, projectData, prepareData) {
|
|
191
|
+
if (!this.$fs.exists(projectData.webpackConfigPath)) {
|
|
192
|
+
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}.`);
|
|
193
|
+
}
|
|
194
|
+
const envData = this.buildEnvData(platformData.platformNameLowerCase, projectData, prepareData);
|
|
195
|
+
const envParams = await this.buildEnvCommandLineParams(envData, platformData, projectData, prepareData);
|
|
196
|
+
const additionalNodeArgs = semver.major(process.version) <= 8 ? ["--harmony"] : [];
|
|
197
|
+
if (await this.shouldUsePreserveSymlinksOption()) {
|
|
198
|
+
additionalNodeArgs.push("--preserve-symlinks");
|
|
199
|
+
}
|
|
200
|
+
if (process.arch === "x64") {
|
|
201
|
+
additionalNodeArgs.unshift("--max_old_space_size=4096");
|
|
202
|
+
}
|
|
203
|
+
const args = [
|
|
204
|
+
...additionalNodeArgs,
|
|
205
|
+
this.getWebpackExecutablePath(projectData),
|
|
206
|
+
this.isWebpack5(projectData) ? `build` : null,
|
|
207
|
+
`--config=${projectData.webpackConfigPath}`,
|
|
208
|
+
...envParams,
|
|
209
|
+
].filter(Boolean);
|
|
210
|
+
if (prepareData.watch) {
|
|
211
|
+
args.push("--watch");
|
|
212
|
+
}
|
|
213
|
+
const stdio = prepareData.watch ? ["ipc"] : "inherit";
|
|
214
|
+
const options = {
|
|
215
|
+
cwd: projectData.projectDir,
|
|
216
|
+
stdio,
|
|
217
|
+
};
|
|
218
|
+
options.env = {
|
|
219
|
+
NATIVESCRIPT_WEBPACK_ENV: JSON.stringify(envData),
|
|
220
|
+
};
|
|
221
|
+
if (this.$hostInfo.isWindows) {
|
|
222
|
+
Object.assign(options.env, { APPDATA: process.env.appData });
|
|
223
|
+
}
|
|
224
|
+
if (this.$options.hostProjectPath) {
|
|
225
|
+
Object.assign(options.env, {
|
|
226
|
+
USER_PROJECT_PLATFORMS_ANDROID: this.$options.hostProjectPath,
|
|
227
|
+
USER_PROJECT_PLATFORMS_ANDROID_MODULE: this.$options.hostProjectModuleName,
|
|
228
|
+
USER_PROJECT_PLATFORMS_IOS: this.$options.hostProjectPath,
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
const childProcess = this.$childProcess.spawn(process.execPath, args, options);
|
|
232
|
+
this.webpackProcesses[platformData.platformNameLowerCase] = childProcess;
|
|
233
|
+
await this.$cleanupService.addKillProcess(childProcess.pid.toString());
|
|
234
|
+
return childProcess;
|
|
235
|
+
}
|
|
255
236
|
buildEnvData(platform, projectData, prepareData) {
|
|
256
237
|
var _a, _b, _c;
|
|
257
238
|
const { env } = prepareData;
|
|
@@ -294,48 +275,46 @@ class WebpackCompilerService extends events_1.EventEmitter {
|
|
|
294
275
|
}
|
|
295
276
|
return envData;
|
|
296
277
|
}
|
|
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
|
-
}
|
|
278
|
+
async buildEnvCommandLineParams(envData, platformData, projectData, prepareData) {
|
|
279
|
+
const envFlagNames = Object.keys(envData);
|
|
280
|
+
const canSnapshot = prepareData.release &&
|
|
281
|
+
this.$mobileHelper.isAndroidPlatform(platformData.normalizedPlatformName);
|
|
282
|
+
if (envData && envData.snapshot) {
|
|
283
|
+
if (!canSnapshot) {
|
|
284
|
+
this.$logger.warn("Stripping the snapshot flag. " +
|
|
285
|
+
"Bear in mind that snapshot is only available in Android release builds.");
|
|
286
|
+
envFlagNames.splice(envFlagNames.indexOf("snapshot"), 1);
|
|
318
287
|
}
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
288
|
+
else if (this.$hostInfo.isWindows) {
|
|
289
|
+
const minWebpackPluginWithWinSnapshotsVersion = "1.3.0";
|
|
290
|
+
const installedWebpackPluginVersion = await this.$packageInstallationManager.getInstalledDependencyVersion(constants_1.WEBPACK_PLUGIN_NAME, projectData.projectDir);
|
|
291
|
+
const hasWebpackPluginWithWinSnapshotsSupport = !!installedWebpackPluginVersion
|
|
292
|
+
? semver.gte(semver.coerce(installedWebpackPluginVersion), minWebpackPluginWithWinSnapshotsVersion)
|
|
293
|
+
: true;
|
|
294
|
+
if (!hasWebpackPluginWithWinSnapshotsSupport) {
|
|
295
|
+
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
296
|
}
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
const args = [];
|
|
300
|
+
envFlagNames.map((item) => {
|
|
301
|
+
let envValue = envData[item];
|
|
302
|
+
if (typeof envValue === "undefined") {
|
|
303
|
+
return;
|
|
304
|
+
}
|
|
305
|
+
if (typeof envValue === "boolean") {
|
|
306
|
+
if (envValue) {
|
|
307
|
+
args.push(`--env.${item}`);
|
|
329
308
|
}
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
envValue.map((value) => args.push(`--env.${item}=${value}`));
|
|
309
|
+
}
|
|
310
|
+
else {
|
|
311
|
+
if (!Array.isArray(envValue)) {
|
|
312
|
+
envValue = [envValue];
|
|
335
313
|
}
|
|
336
|
-
|
|
337
|
-
|
|
314
|
+
envValue.map((value) => args.push(`--env.${item}=${value}`));
|
|
315
|
+
}
|
|
338
316
|
});
|
|
317
|
+
return args;
|
|
339
318
|
}
|
|
340
319
|
getUpdatedEmittedFiles(allEmittedFiles, chunkFiles, nextHash, platform) {
|
|
341
320
|
const currentHash = this.getCurrentHotUpdateHash(allEmittedFiles);
|
|
@@ -374,16 +353,14 @@ class WebpackCompilerService extends events_1.EventEmitter {
|
|
|
374
353
|
}
|
|
375
354
|
return hotHash || "";
|
|
376
355
|
}
|
|
377
|
-
stopWebpackForPlatform(platform) {
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
}
|
|
386
|
-
});
|
|
356
|
+
async stopWebpackForPlatform(platform) {
|
|
357
|
+
this.$logger.trace(`Stopping webpack watch for platform ${platform}.`);
|
|
358
|
+
const webpackProcess = this.webpackProcesses[platform];
|
|
359
|
+
await this.$cleanupService.removeKillProcess(webpackProcess.pid.toString());
|
|
360
|
+
if (webpackProcess) {
|
|
361
|
+
webpackProcess.kill("SIGINT");
|
|
362
|
+
delete this.webpackProcesses[platform];
|
|
363
|
+
}
|
|
387
364
|
}
|
|
388
365
|
handleHMRMessage(message, platformData, projectData, prepareData) {
|
|
389
366
|
// handle new webpack hmr packets
|
|
@@ -452,9 +429,9 @@ class WebpackCompilerService extends events_1.EventEmitter {
|
|
|
452
429
|
return false;
|
|
453
430
|
}
|
|
454
431
|
}
|
|
432
|
+
exports.WebpackCompilerService = WebpackCompilerService;
|
|
455
433
|
__decorate([
|
|
456
434
|
(0, decorators_1.performanceLog)()
|
|
457
435
|
], WebpackCompilerService.prototype, "startWebpackProcess", null);
|
|
458
|
-
exports.WebpackCompilerService = WebpackCompilerService;
|
|
459
436
|
yok_1.injector.register("webpackCompilerService", WebpackCompilerService);
|
|
460
437
|
//# sourceMappingURL=webpack-compiler-service.js.map
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.XcconfigService = void 0;
|
|
13
4
|
const path = require("path");
|
|
@@ -30,22 +21,20 @@ class XcconfigService {
|
|
|
30
21
|
getPluginsReleaseXcconfigFilePath(projectRoot) {
|
|
31
22
|
return path.join(projectRoot, "plugins-release.xcconfig");
|
|
32
23
|
}
|
|
33
|
-
mergeFiles(sourceFile, destinationFile) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
const mergeScript = `require 'xcodeproj';
|
|
24
|
+
async mergeFiles(sourceFile, destinationFile) {
|
|
25
|
+
if (!this.$fs.exists(destinationFile)) {
|
|
26
|
+
this.$fs.writeFile(destinationFile, "");
|
|
27
|
+
}
|
|
28
|
+
const escapedDestinationFile = destinationFile.replace(/'/g, "\\'");
|
|
29
|
+
const escapedSourceFile = sourceFile.replace(/'/g, "\\'");
|
|
30
|
+
const mergeScript = `require 'xcodeproj';
|
|
41
31
|
userConfig = Xcodeproj::Config.new('${escapedDestinationFile}')
|
|
42
32
|
existingConfig = Xcodeproj::Config.new('${escapedSourceFile}')
|
|
43
33
|
userConfig.attributes.each do |key,|
|
|
44
34
|
existingConfig.attributes.delete(key) if (userConfig.attributes.key?(key) && existingConfig.attributes.key?(key))
|
|
45
35
|
end
|
|
46
36
|
userConfig.merge(existingConfig).save_as(Pathname.new('${escapedDestinationFile}'))`;
|
|
47
|
-
|
|
48
|
-
});
|
|
37
|
+
await this.$childProcess.exec(`ruby -e "${mergeScript}"`);
|
|
49
38
|
}
|
|
50
39
|
readPropertyValue(xcconfigFilePath, propertyName) {
|
|
51
40
|
if (this.$fs.exists(xcconfigFilePath)) {
|