src/content/docs/linter/rules/use-nodejs-import-protocol.mdx
import { Tabs, TabItem } from '@astrojs/starlight/components';
<Tabs> <TabItem label="JavaScript (and super languages)" icon="seti:javascript"> ## Summary - Rule available since: `v1.5.0` - Diagnostic Category: [`lint/style/useNodejsImportProtocol`](/reference/diagnostics#diagnostic-category) - This rule is **recommended**, meaning it is enabled by default. - This rule has an [**unsafe**](/linter/#unsafe-fixes) fix. - The default severity of this rule is [**information**](/reference/diagnostics#information). - Sources: - Same as [`unicorn/prefer-node-protocol`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-node-protocol.md) - Same as [`import/enforce-node-protocol-usage`](https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/enforce-node-protocol-usage.md){
"linter": {
"rules": {
"style": {
"useNodejsImportProtocol": "error"
}
}
}
}
Enforces using the node: protocol for Node.js builtin modules.
The rule marks traditional imports like import fs from "fs"; as invalid,
suggesting the format import fs from "node:fs"; instead.
The rule also isn't triggered if there are dependencies declared in the package.json that match
the name of a built-in Node.js module.
:::caution The rule doesn't support dependencies installed inside a monorepo. :::
import fs from 'fs';
import os from 'os';
import path from 'path';
import fs from 'node:fs';
import os from 'node:os';
import path from 'node:path';