mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
refactor(migrations): ensure CommonJS migrations can be accessed (#43657)
The `@angular/core` migrations are currently published as CommonJS and also not bundled. Schematics, of which migrations are a type, are currently required to be CommonJS modules due to the Schematics Runtime not yet supporting ESM-based schematics. To ensure that the migration files are loaded as CommonJS modules, a nested `package.json` file has been introduced within the `schematics` directory of the package to set the `type` field for all containing JavaScript files as CommonJS. Since the migrations are also not currently bundled and the `devmode` output used to build the migrations will replace all relative imports with fully-qualified module specifiers, an additional `exports` entry must be added to allow the fully-qualified module specifiers to correctly resolve. If `devmode` did not change the relative imports the additional entry would not be needed. Bundling would also remedy the situation and is the long-term path, especially once the migrations are converted to ESM. Additional followup changes should investigate bundling each migration. The additional `exports` entry should be removed if either `devmode` behavior is changed or the migrations are bundled. PR Close #43657
This commit is contained in:
committed by
Dylan Hunn
parent
e0015d3c45
commit
6d1c2f79da
@@ -72,6 +72,9 @@ describe('@angular/core ng_package', () => {
|
||||
node: './fesm2015/testing.mjs',
|
||||
default: './fesm2020/testing.mjs',
|
||||
},
|
||||
'./schematics/*': {
|
||||
'default': './schematics/*.js',
|
||||
},
|
||||
}
|
||||
}));
|
||||
});
|
||||
|
||||
@@ -7,6 +7,11 @@
|
||||
"engines": {
|
||||
"node": "^12.14.1 || >=14.0.0"
|
||||
},
|
||||
"exports": {
|
||||
"./schematics/*": {
|
||||
"default": "./schematics/*.js"
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"tslib": "^2.3.0"
|
||||
},
|
||||
|
||||
@@ -7,7 +7,10 @@ exports_files([
|
||||
|
||||
pkg_npm(
|
||||
name = "npm_package",
|
||||
srcs = ["migrations.json"],
|
||||
srcs = [
|
||||
"migrations.json",
|
||||
"package.json",
|
||||
],
|
||||
visibility = ["//packages/core:__pkg__"],
|
||||
deps = [
|
||||
"//packages/core/schematics/migrations/abstract-control-parent",
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"type": "commonjs"
|
||||
}
|
||||
Reference in New Issue
Block a user