{ "id": "174936", "key": "TIMOB-27860", "fields": { "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "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": [ { "id": "20950", "name": "Release 9.1.0", "archived": false, "released": true, "releaseDate": "2020-08-25" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2020-08-25T00:36:04.000+0000", "created": "2020-04-21T17:39:00.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": [ { "id": "58330", "type": { "id": "10000", "name": "Blocks", "inward": "is blocked by", "outward": "blocks" }, "outwardIssue": { "id": "174933", "key": "TIMOB-27858", "fields": { "summary": "Webpack: Move configuration to independent packages", "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" } }, "priority": { "name": "None", "id": "6" }, "issuetype": { "id": "7", "description": "gh.issue.story.desc", "name": "Story", "subtask": false } } } } ], "assignee": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2020-08-25T00:36:04.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": [], "description": "For TIMOB-27858, plugins need the ability to tap into hooks before/after other plugins to ensure the order in which certain aspects of a plugin gets applied. This is especially important for {{chainWebpack}} to make sure the base configuration is present before other third-party plugins may try to modify it.\r\n\r\n*Default behavior*\r\n\r\nBy default plugins are evaluated in series. Built-in plugins from appcd-plugin-webpack are always loaded first. Plugins from {{package.json}} are loaded in the order they are defined there.\r\n\r\n*API proposal*\r\n\r\nAdd {{options}} argument as the last argument with {{after}}/{{before}} properties to control the order in which values will be applied.\r\n\r\n{code:js}\r\nmodule.exports = function (api, options) {\r\n api.chainWebpack(\r\n config => {\r\n config\r\n\t.entry('main')\r\n\t.add('./src/main.js')\r\n\t.end();\r\n },\r\n { after: 'built-in:config/prod' }\r\n );\r\n};\r\n{code}", "attachment": [], "flagged": false, "summary": "Webpack: Tap into hooks before/after other plugins", "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, "closedSprints": [ { "id": 1194, "state": "closed", "name": "2020 Sprint 9", "startDate": "2020-04-24T17:09:51.572Z", "endDate": "2020-05-08T17:09:00.000Z", "completeDate": "2020-05-08T15:40:07.869Z", "originBoardId": 114 }, { "id": 1199, "state": "closed", "name": "2020 Sprint 13", "startDate": "2020-06-19T16:41:04.099Z", "endDate": "2020-07-02T16:41:00.000Z", "completeDate": "2020-07-02T15:37:12.455Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "455301", "author": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "body": "PR: https://github.com/appcelerator/appcd-plugin-webpack/pull/12", "updateAuthor": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "created": "2020-04-29T15:21:34.000+0000", "updated": "2020-04-29T15:21:34.000+0000" }, { "id": "456567", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Closing.", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2020-08-25T00:35:59.000+0000", "updated": "2020-08-25T00:35:59.000+0000" } ], "maxResults": 2, "total": 2, "startAt": 0 } } }