explanations

This commit is contained in:
Ilya Kantor 2019-05-10 10:43:10 +03:00
parent 4dc42722c9
commit 8e251ab306

View file

@ -301,14 +301,14 @@ There are two notable differences of external module scripts:
That ensures better security by default. That ensures better security by default.
### No bare modules allowed ### No "bare" modules allowed
In the browser, in scripts (not in HTML), `import` must get either a relative or absolute URL. So-called "bare" modules, without a path, are not allowed. In the browser, in scripts (not in HTML), `import` must get either a relative or absolute URL. Modules without any path are called "bare" modules. Such modules are not allowed in `import`.
For instance, this `import` is invalid: For instance, this `import` is invalid:
```js ```js
import {sayHi} from 'sayHi'; // Error, "bare" module import {sayHi} from 'sayHi'; // Error, "bare" module
// must be './sayHi.js' or wherever the module is // the module must have a path, e.g. './sayHi.js' or wherever the module is
``` ```
Certain environments, like Node.js or bundle tools allow bare modules, as they have own ways for finding modules and hooks to fine-tune them. But browsers do not support bare modules yet. Certain environments, like Node.js or bundle tools allow bare modules, as they have own ways for finding modules and hooks to fine-tune them. But browsers do not support bare modules yet.
@ -328,7 +328,7 @@ Old browsers do not understand `type="module"`. Scripts of the unknown type are
</script> </script>
``` ```
If we use bundle tools, then as modules are bundled together, their `import/export` statements are replaced by special bundler calls, so the resulting build does not require `type="module"`, and we can put it into a regular script: If we use bundle tools, then as scripts are bundled together into a single file (or few files), `import/export` statements inside those scripts are replaced by special bundler functions. So the resulting "bundled" script does not contain any `import/export`, it doesn't require `type="module"`, and we can put it into a regular script:
```html ```html
<!-- Assuming we got bundle.js from a tool like Webpack --> <!-- Assuming we got bundle.js from a tool like Webpack -->