@atlaspack/packager-js 2.15.0 → 2.16.0
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/CHANGELOG.md +16 -0
- package/lib/DevPackager.js +18 -0
- package/lib/ScopeHoistingPackager.js +1 -15
- package/lib/index.js +3 -10
- package/package.json +5 -5
- package/src/DevPackager.js +13 -0
- package/src/ScopeHoistingPackager.js +1 -24
- package/src/index.js +0 -10
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @atlaspack/packager-js
|
|
2
2
|
|
|
3
|
+
## 2.16.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#644](https://github.com/atlassian-labs/atlaspack/pull/644) [`fc59be7`](https://github.com/atlassian-labs/atlaspack/commit/fc59be71f43dd87d3e6fb7f3f50c424d2b664858) Thanks [@marcins](https://github.com/marcins)! - Removes the unused unstable `forceSkipWrapAssets` feature
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- [#633](https://github.com/atlassian-labs/atlaspack/pull/633) [`26aa9c5`](https://github.com/atlassian-labs/atlaspack/commit/26aa9c599d2be45ce1438a74c5fa22f39b9b554b) Thanks [@sbhuiyan-atlassian](https://github.com/sbhuiyan-atlassian)! - Ported various HMR changes from Parcel
|
|
12
|
+
|
|
13
|
+
- Updated dependencies [[`26aa9c5`](https://github.com/atlassian-labs/atlaspack/commit/26aa9c599d2be45ce1438a74c5fa22f39b9b554b), [`0501255`](https://github.com/atlassian-labs/atlaspack/commit/05012550da35b05ce7d356a8cc29311e7f9afdca)]:
|
|
14
|
+
- @atlaspack/feature-flags@2.18.1
|
|
15
|
+
- @atlaspack/types@2.15.3
|
|
16
|
+
- @atlaspack/utils@2.15.1
|
|
17
|
+
- @atlaspack/plugin@2.14.13
|
|
18
|
+
|
|
3
19
|
## 2.15.0
|
|
4
20
|
|
|
5
21
|
### Minor Changes
|
package/lib/DevPackager.js
CHANGED
|
@@ -18,6 +18,13 @@ function _sourceMap() {
|
|
|
18
18
|
};
|
|
19
19
|
return data;
|
|
20
20
|
}
|
|
21
|
+
function _featureFlags() {
|
|
22
|
+
const data = require("@atlaspack/feature-flags");
|
|
23
|
+
_featureFlags = function () {
|
|
24
|
+
return data;
|
|
25
|
+
};
|
|
26
|
+
return data;
|
|
27
|
+
}
|
|
21
28
|
function _assert() {
|
|
22
29
|
const data = _interopRequireDefault(require("assert"));
|
|
23
30
|
_assert = function () {
|
|
@@ -108,6 +115,17 @@ class DevPackager {
|
|
|
108
115
|
deps[specifier] = dep.specifier;
|
|
109
116
|
}
|
|
110
117
|
}
|
|
118
|
+
if ((0, _featureFlags().getFeatureFlag)('hmrImprovements')) {
|
|
119
|
+
// Add dependencies for parcelRequire calls added by runtimes
|
|
120
|
+
// so that the HMR runtime can correctly traverse parents.
|
|
121
|
+
let hmrDeps = asset.meta.hmrDeps;
|
|
122
|
+
if (this.options.hmrOptions && Array.isArray(hmrDeps)) {
|
|
123
|
+
for (let id of hmrDeps) {
|
|
124
|
+
(0, _assert().default)(typeof id === 'string');
|
|
125
|
+
deps[id] = id;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
111
129
|
let {
|
|
112
130
|
code,
|
|
113
131
|
mapBuffer
|
|
@@ -99,14 +99,12 @@ class ScopeHoistingPackager {
|
|
|
99
99
|
needsPrelude = false;
|
|
100
100
|
usedHelpers = new Set();
|
|
101
101
|
externalAssets = new Set();
|
|
102
|
-
|
|
103
|
-
constructor(options, bundleGraph, bundle, parcelRequireName, useAsyncBundleRuntime, forceSkipWrapAssets, logger) {
|
|
102
|
+
constructor(options, bundleGraph, bundle, parcelRequireName, useAsyncBundleRuntime, logger) {
|
|
104
103
|
this.options = options;
|
|
105
104
|
this.bundleGraph = bundleGraph;
|
|
106
105
|
this.bundle = bundle;
|
|
107
106
|
this.parcelRequireName = parcelRequireName;
|
|
108
107
|
this.useAsyncBundleRuntime = useAsyncBundleRuntime;
|
|
109
|
-
this.forceSkipWrapAssets = forceSkipWrapAssets ?? [];
|
|
110
108
|
this.logger = logger;
|
|
111
109
|
let OutputFormat = OUTPUT_FORMATS[this.bundle.env.outputFormat];
|
|
112
110
|
this.outputFormat = new OutputFormat(this);
|
|
@@ -326,18 +324,6 @@ class ScopeHoistingPackager {
|
|
|
326
324
|
actions.skipChildren();
|
|
327
325
|
return;
|
|
328
326
|
}
|
|
329
|
-
// This prevents children of a wrapped asset also being wrapped - it's an "unsafe" optimisation
|
|
330
|
-
// that should only be used when you know (or think you know) what you're doing.
|
|
331
|
-
//
|
|
332
|
-
// In particular this can force an async bundle to be scope hoisted where it previously would not be
|
|
333
|
-
// due to the entry asset being wrapped.
|
|
334
|
-
if (this.forceSkipWrapAssets.length > 0 && this.forceSkipWrapAssets.some(p => p === _path().default.relative(this.options.projectRoot, asset.filePath))) {
|
|
335
|
-
this.logger.verbose({
|
|
336
|
-
message: `Force skipping wrapping of ${_path().default.relative(this.options.projectRoot, asset.filePath)}`
|
|
337
|
-
});
|
|
338
|
-
actions.skipChildren();
|
|
339
|
-
return;
|
|
340
|
-
}
|
|
341
327
|
if (!asset.meta.isConstantModule) {
|
|
342
328
|
this.wrappedAssets.add(asset.id);
|
|
343
329
|
wrapped.push(asset);
|
package/lib/index.js
CHANGED
|
@@ -47,12 +47,6 @@ const CONFIG_SCHEMA = {
|
|
|
47
47
|
properties: {
|
|
48
48
|
unstable_asyncBundleRuntime: {
|
|
49
49
|
type: 'boolean'
|
|
50
|
-
},
|
|
51
|
-
unstable_forceSkipWrapAssets: {
|
|
52
|
-
type: 'array',
|
|
53
|
-
items: {
|
|
54
|
-
type: 'string'
|
|
55
|
-
}
|
|
56
50
|
}
|
|
57
51
|
},
|
|
58
52
|
additionalProperties: false
|
|
@@ -62,7 +56,7 @@ var _default = exports.default = new (_plugin().Packager)({
|
|
|
62
56
|
config,
|
|
63
57
|
options
|
|
64
58
|
}) {
|
|
65
|
-
var _conf$contents
|
|
59
|
+
var _conf$contents;
|
|
66
60
|
let packageKey = '@atlaspack/packager-js';
|
|
67
61
|
let conf = await config.getConfigFrom(options.projectRoot + '/index', [], {
|
|
68
62
|
packageKey
|
|
@@ -84,8 +78,7 @@ var _default = exports.default = new (_plugin().Packager)({
|
|
|
84
78
|
let name = (packageName === null || packageName === void 0 ? void 0 : packageName.contents) ?? '';
|
|
85
79
|
return {
|
|
86
80
|
parcelRequireName: 'parcelRequire' + (0, _rust().hashString)(name).slice(-4),
|
|
87
|
-
unstable_asyncBundleRuntime: Boolean(conf === null || conf === void 0 || (_conf$contents = conf.contents) === null || _conf$contents === void 0 ? void 0 : _conf$contents.unstable_asyncBundleRuntime)
|
|
88
|
-
unstable_forceSkipWrapAssets: (conf === null || conf === void 0 || (_conf$contents2 = conf.contents) === null || _conf$contents2 === void 0 ? void 0 : _conf$contents2.unstable_forceSkipWrapAssets) ?? []
|
|
81
|
+
unstable_asyncBundleRuntime: Boolean(conf === null || conf === void 0 || (_conf$contents = conf.contents) === null || _conf$contents === void 0 ? void 0 : _conf$contents.unstable_asyncBundleRuntime)
|
|
89
82
|
};
|
|
90
83
|
},
|
|
91
84
|
async package({
|
|
@@ -108,7 +101,7 @@ var _default = exports.default = new (_plugin().Packager)({
|
|
|
108
101
|
}
|
|
109
102
|
}
|
|
110
103
|
if (contents == null) {
|
|
111
|
-
let packager = bundle.env.shouldScopeHoist ? new _ScopeHoistingPackager.ScopeHoistingPackager(options, bundleGraph, bundle, (0, _nullthrows().default)(config).parcelRequireName, (0, _nullthrows().default)(config).unstable_asyncBundleRuntime,
|
|
104
|
+
let packager = bundle.env.shouldScopeHoist ? new _ScopeHoistingPackager.ScopeHoistingPackager(options, bundleGraph, bundle, (0, _nullthrows().default)(config).parcelRequireName, (0, _nullthrows().default)(config).unstable_asyncBundleRuntime, logger) : new _DevPackager.DevPackager(options, bundleGraph, bundle, (0, _nullthrows().default)(config).parcelRequireName);
|
|
112
105
|
({
|
|
113
106
|
contents,
|
|
114
107
|
map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaspack/packager-js",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.16.0",
|
|
4
4
|
"license": "(MIT OR Apache-2.0)",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -16,12 +16,12 @@
|
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
18
|
"@atlaspack/diagnostic": "2.14.1",
|
|
19
|
-
"@atlaspack/feature-flags": "2.18.
|
|
20
|
-
"@atlaspack/plugin": "2.14.
|
|
19
|
+
"@atlaspack/feature-flags": "2.18.1",
|
|
20
|
+
"@atlaspack/plugin": "2.14.13",
|
|
21
21
|
"@atlaspack/rust": "3.3.5",
|
|
22
22
|
"@parcel/source-map": "^2.1.1",
|
|
23
|
-
"@atlaspack/types": "2.15.
|
|
24
|
-
"@atlaspack/utils": "2.15.
|
|
23
|
+
"@atlaspack/types": "2.15.3",
|
|
24
|
+
"@atlaspack/utils": "2.15.1",
|
|
25
25
|
"globals": "^13.2.0",
|
|
26
26
|
"nullthrows": "^1.1.1"
|
|
27
27
|
},
|
package/src/DevPackager.js
CHANGED
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
normalizeSeparators,
|
|
9
9
|
} from '@atlaspack/utils';
|
|
10
10
|
import SourceMap from '@parcel/source-map';
|
|
11
|
+
import {getFeatureFlag} from '@atlaspack/feature-flags';
|
|
11
12
|
import invariant from 'assert';
|
|
12
13
|
import path from 'path';
|
|
13
14
|
import fs from 'fs';
|
|
@@ -112,6 +113,18 @@ export class DevPackager {
|
|
|
112
113
|
}
|
|
113
114
|
}
|
|
114
115
|
|
|
116
|
+
if (getFeatureFlag('hmrImprovements')) {
|
|
117
|
+
// Add dependencies for parcelRequire calls added by runtimes
|
|
118
|
+
// so that the HMR runtime can correctly traverse parents.
|
|
119
|
+
let hmrDeps = asset.meta.hmrDeps;
|
|
120
|
+
if (this.options.hmrOptions && Array.isArray(hmrDeps)) {
|
|
121
|
+
for (let id of hmrDeps) {
|
|
122
|
+
invariant(typeof id === 'string');
|
|
123
|
+
deps[id] = id;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
115
128
|
let {code, mapBuffer} = results[i];
|
|
116
129
|
let output = code || '';
|
|
117
130
|
wrapped +=
|
|
@@ -102,7 +102,6 @@ export class ScopeHoistingPackager {
|
|
|
102
102
|
needsPrelude: boolean = false;
|
|
103
103
|
usedHelpers: Set<string> = new Set();
|
|
104
104
|
externalAssets: Set<Asset> = new Set();
|
|
105
|
-
forceSkipWrapAssets: Array<string> = [];
|
|
106
105
|
logger: PluginLogger;
|
|
107
106
|
|
|
108
107
|
constructor(
|
|
@@ -111,7 +110,6 @@ export class ScopeHoistingPackager {
|
|
|
111
110
|
bundle: NamedBundle,
|
|
112
111
|
parcelRequireName: string,
|
|
113
112
|
useAsyncBundleRuntime: boolean,
|
|
114
|
-
forceSkipWrapAssets: Array<string>,
|
|
115
113
|
logger: PluginLogger,
|
|
116
114
|
) {
|
|
117
115
|
this.options = options;
|
|
@@ -119,7 +117,6 @@ export class ScopeHoistingPackager {
|
|
|
119
117
|
this.bundle = bundle;
|
|
120
118
|
this.parcelRequireName = parcelRequireName;
|
|
121
119
|
this.useAsyncBundleRuntime = useAsyncBundleRuntime;
|
|
122
|
-
this.forceSkipWrapAssets = forceSkipWrapAssets ?? [];
|
|
123
120
|
this.logger = logger;
|
|
124
121
|
|
|
125
122
|
let OutputFormat = OUTPUT_FORMATS[this.bundle.env.outputFormat];
|
|
@@ -444,27 +441,7 @@ export class ScopeHoistingPackager {
|
|
|
444
441
|
actions.skipChildren();
|
|
445
442
|
return;
|
|
446
443
|
}
|
|
447
|
-
|
|
448
|
-
// that should only be used when you know (or think you know) what you're doing.
|
|
449
|
-
//
|
|
450
|
-
// In particular this can force an async bundle to be scope hoisted where it previously would not be
|
|
451
|
-
// due to the entry asset being wrapped.
|
|
452
|
-
if (
|
|
453
|
-
this.forceSkipWrapAssets.length > 0 &&
|
|
454
|
-
this.forceSkipWrapAssets.some(
|
|
455
|
-
(p) =>
|
|
456
|
-
p === path.relative(this.options.projectRoot, asset.filePath),
|
|
457
|
-
)
|
|
458
|
-
) {
|
|
459
|
-
this.logger.verbose({
|
|
460
|
-
message: `Force skipping wrapping of ${path.relative(
|
|
461
|
-
this.options.projectRoot,
|
|
462
|
-
asset.filePath,
|
|
463
|
-
)}`,
|
|
464
|
-
});
|
|
465
|
-
actions.skipChildren();
|
|
466
|
-
return;
|
|
467
|
-
}
|
|
444
|
+
|
|
468
445
|
if (!asset.meta.isConstantModule) {
|
|
469
446
|
this.wrappedAssets.add(asset.id);
|
|
470
447
|
wrapped.push(asset);
|
package/src/index.js
CHANGED
|
@@ -17,7 +17,6 @@ import {ScopeHoistingPackager} from './ScopeHoistingPackager';
|
|
|
17
17
|
type JSPackagerConfig = {|
|
|
18
18
|
parcelRequireName: string,
|
|
19
19
|
unstable_asyncBundleRuntime: boolean,
|
|
20
|
-
unstable_forceSkipWrapAssets: Array<string>,
|
|
21
20
|
|};
|
|
22
21
|
|
|
23
22
|
const CONFIG_SCHEMA: SchemaEntity = {
|
|
@@ -26,12 +25,6 @@ const CONFIG_SCHEMA: SchemaEntity = {
|
|
|
26
25
|
unstable_asyncBundleRuntime: {
|
|
27
26
|
type: 'boolean',
|
|
28
27
|
},
|
|
29
|
-
unstable_forceSkipWrapAssets: {
|
|
30
|
-
type: 'array',
|
|
31
|
-
items: {
|
|
32
|
-
type: 'string',
|
|
33
|
-
},
|
|
34
|
-
},
|
|
35
28
|
},
|
|
36
29
|
additionalProperties: false,
|
|
37
30
|
};
|
|
@@ -73,8 +66,6 @@ export default (new Packager({
|
|
|
73
66
|
unstable_asyncBundleRuntime: Boolean(
|
|
74
67
|
conf?.contents?.unstable_asyncBundleRuntime,
|
|
75
68
|
),
|
|
76
|
-
unstable_forceSkipWrapAssets:
|
|
77
|
-
conf?.contents?.unstable_forceSkipWrapAssets ?? [],
|
|
78
69
|
};
|
|
79
70
|
},
|
|
80
71
|
async package({
|
|
@@ -108,7 +99,6 @@ export default (new Packager({
|
|
|
108
99
|
bundle,
|
|
109
100
|
nullthrows(config).parcelRequireName,
|
|
110
101
|
nullthrows(config).unstable_asyncBundleRuntime,
|
|
111
|
-
nullthrows(config).unstable_forceSkipWrapAssets,
|
|
112
102
|
logger,
|
|
113
103
|
)
|
|
114
104
|
: new DevPackager(
|