Skip to content

Commit

Permalink
tools,doc: forbid CJS globals in ESM code snippets
Browse files Browse the repository at this point in the history
PR-URL: #38889
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Danielle Adams <adamzdanielle@gmail.com>
Reviewed-By: Zeyu Yang <himself65@outlook.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
  • Loading branch information
aduh95 authored and targos committed Jun 11, 2021
1 parent 17a9846 commit 00c20e6
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 5 deletions.
23 changes: 23 additions & 0 deletions .eslintrc.js
Expand Up @@ -76,6 +76,29 @@ module.exports = {
'doc/api/packages.md/*.js',
],
parserOptions: { sourceType: 'module' },
rules: { 'no-restricted-globals': [
'error',
{
name: '__filename',
message: 'Use import.meta.url instead',
},
{
name: '__dirname',
message: 'Not available in ESM',
},
{
name: 'exports',
message: 'Not available in ESM',
},
{
name: 'module',
message: 'Not available in ESM',
},
{
name: 'require',
message: 'Use import instead',
},
] },
},
],
rules: {
Expand Down
2 changes: 1 addition & 1 deletion doc/api/esm.md
Expand Up @@ -386,7 +386,7 @@ analysis process.
For example, consider a CommonJS module written:
```js
```cjs
// cjs.cjs
exports.name = 'exported';
```
Expand Down
8 changes: 4 additions & 4 deletions doc/api/packages.md
Expand Up @@ -704,7 +704,7 @@ import { another } from 'a-package/m.mjs';
Self-referencing is also available when using `require`, both in an ES module,
and in a CommonJS one. For example, this code will also work:

```js
```cjs
// ./a-module.js
const { something } = require('a-package/foo'); // Loads from ./foo.js.
```
Expand Down Expand Up @@ -807,7 +807,7 @@ to be treated as ES modules, just as `"type": "commonjs"` would cause them
to be treated as CommonJS.
See [Enabling](#esm_enabling).

```js
```cjs
// ./node_modules/pkg/index.cjs
exports.name = 'value';
```
Expand Down Expand Up @@ -920,7 +920,7 @@ CommonJS and ES module instances of the package:
CommonJS and ES module versions of the package. For example, if the CommonJS
and ES module entry points are `index.cjs` and `index.mjs`, respectively:

```js
```cjs
// ./node_modules/pkg/index.cjs
const state = require('./state.cjs');
module.exports.state = state;
Expand Down Expand Up @@ -1034,7 +1034,7 @@ The `"main"` field defines the script that is used when the [package directory
is loaded via `require()`](modules.md#modules_folders_as_modules). Its value
is a path.

```js
```cjs
require('./path/to/directory'); // This resolves to ./path/to/directory/main.js.
```

Expand Down

0 comments on commit 00c20e6

Please sign in to comment.