{ "id": "174268", "key": "TIMOB-27478", "fields": { "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [], "resolution": { "id": "10100", "description": "This issue won't be actioned.", "name": "Won't Do" }, "resolutiondate": "2020-01-24T00:10:24.000+0000", "created": "2019-10-17T11:07:22.000+0000", "epic": { "id": 174195, "key": "TIMOB-27428", "name": "Webpack Support", "summary": "Use Webpack as the JavaScript build pipeline", "color": { "key": "color_1" }, "done": false }, "priority": { "name": "None", "id": "6" }, "labels": [], "versions": [], "issuelinks": [], "assignee": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2020-01-24T00:10:24.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10207", "name": "Tooling" } ], "description": "To speed up production builds we should include [thread-loader|https://github.com/webpack-contrib/thread-loader] before other expensive loaders, like babel-loader.\r\n\r\nThe thread-loader is currently having some issues with platform specific files which needs to be investigated. We override Webpack's default compiler input filesystem with [PlatformAwareFilesystem|https://github.com/appcelerator/titanium-webpack-devkit/blob/a6af9bea700d2aeaa776defcbea96fe573047060/packages/webpack-target-titanium/src/plugins/PlatformAwareFileSystemPlugin.js#L12] to easily switch out files based on the current platform. For example, a require to {{@/components/Platform.vue}} uses {{@/components/Platform.ios.vue}} if available.\r\n\r\nThis works fine in other loaders because they use the internal compiler filesystem. However, therad-loader has no access to that in workers, so it resorts to Node's [fs|https://github.com/webpack-contrib/thread-loader/blob/488300f5ad86c2eb794848de4cbc71c0cc5637da/src/worker.js#L107] module.", "attachment": [], "flagged": false, "summary": "Webpack: Use thread-loader in production builds", "creator": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "subtasks": [], "reporter": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "environment": null, "comment": { "comments": [ { "id": "453796", "author": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "body": "There are other issues with with vue-loader and our custom titanium-vue-template-compiler as well. We need to specify our custom vue template compile function, which is not supported by thread loader.\r\n\r\nSince this will just result in a slight build time improvements i'll close this ticket for now. We can open it again should the need for thread-loader come up again.", "updateAuthor": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "created": "2020-01-24T00:10:24.000+0000", "updated": "2020-01-24T00:10:24.000+0000" } ], "maxResults": 1, "total": 1, "startAt": 0 } } }