mirror of
https://github.com/google/blockly.git
synced 2026-01-06 16:40:07 +01:00
feat(build)!: Introduce ESM entrypoints (#8091)
* feat(build)!: Introduce ESM entrypoints for chunks
Introduce an "import" conditional export for each of the chunk
entrypoints (blockly/core, blockly/blocks, blockly/javascript
etc.), and point these at wrappers created by build_tasks.js
that import the corresponding <chunk>_compressed.js file and
export its named exports.
BREAKING CHANGE:
Importing Blockly via
import Blockly from 'blockly/core';
(and similarly for the other chunk entrypoints) has worked until
now because most build tools (including Webpack in particular)
fuilfil the request for the default export of a CJS module by
providing the module.exports object, rather than an
explicitly-named default export as they would for an ES module.
Since core/blockly.ts (the notional entrypoint for blockly/core)
does not provide a default export, the wrappers created by this
PR do not either.
Code of the above form will therefore break, and should be updated
to use a wildcard:
import * as Blockly from 'blockly/core';
* feat(build)!: Introduce main package ESM entrypoint
Introduce an "import" conditional export for the top-level
package entrypoint (blockly), and point it at a wrappers
created by build_tasks.js that imports the existing index.js
file.
BREAKING CHANGE:
Importing Blockly via
import Blockly from 'blockly';
has worked until now because most build tools (including Webpack
in particular) fuilfil the request for the default export of a
CJS module by providing the module.exports object, rather than an
explicitly-named default export as they would for an ES module.
Since core/blockly.ts does not provide a default export, the
wrapper created by this PR does not either.
Code of the above form will therefore break, and should be updated
to use a wildcard:
import * as Blockly from 'blockly';
* feat(build)!: Introduce ESM entrypoints for langfiles
Introduce an "import" conditional export for each of the
langfile entrypoints (msg/en, msg/fr, etc.),, and point them
at wrappers created by build_tasks.js that import the
existing <lang>.js file.
BREAKING CHANGE:
Importing languages via
import en from 'blockly/msg/en';
has worked until now because most build tools (including Webpack
in particular) fuilfil the request for the default export of a
CJS module by providing the module.exports object, rather than an
explicitly-named default export as they would for an ES module.
Code of the above form will therefore break, and should be updated
to use a wildcard:
import * as en from 'blockly/msg/en';
* fix(typings): Remove bogus .d.ts file.
For some reason we had a typings/msg/yue.d.ts that did not
correxpond to any msg/json/yue.json. Delete it.
This commit is contained in:
committed by
GitHub
parent
c704d5a887
commit
2ebdc0b7f9
@@ -57,40 +57,49 @@
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./index.d.ts",
|
||||
"import": "./index.mjs",
|
||||
"umd": "./blockly.min.js",
|
||||
"default": "./index.js"
|
||||
},
|
||||
"./core": {
|
||||
"types": "./core.d.ts",
|
||||
"node": "./core-node.js",
|
||||
"import": "./blockly.mjs",
|
||||
"default": "./blockly_compressed.js"
|
||||
},
|
||||
"./blocks": {
|
||||
"types": "./blocks.d.ts",
|
||||
"import": "./blocks.mjs",
|
||||
"default": "./blocks_compressed.js"
|
||||
},
|
||||
"./dart": {
|
||||
"types": "./dart.d.ts",
|
||||
"import": "./dart.mjs",
|
||||
"default": "./dart_compressed.js"
|
||||
},
|
||||
"./lua": {
|
||||
"types": "./lua.d.ts",
|
||||
"import": "./lua.mjs",
|
||||
"default": "./lua_compressed.js"
|
||||
},
|
||||
"./javascript": {
|
||||
"types": "./javascript.d.ts",
|
||||
"import": "./javascript.mjs",
|
||||
"default": "./javascript_compressed.js"
|
||||
},
|
||||
"./php": {
|
||||
"types": "./php.d.ts",
|
||||
"import": "./php.mjs",
|
||||
"default": "./php_compressed.js"
|
||||
},
|
||||
"./python": {
|
||||
"types": "./python.d.ts",
|
||||
"import": "./python.mjs",
|
||||
"default": "./python_compressed.js"
|
||||
},
|
||||
"./msg/*": {
|
||||
"types": "./msg/*.d.ts",
|
||||
"import": "./msg/*.mjs",
|
||||
"default": "./msg/*.js"
|
||||
}
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user