An SWC plugin to remove "node:"
Install with your favorite package manager as devDependency.
npm i -D swc-plugin-remove-node-protocol or pnpm add -D swc-plugin-remove-node-protocol or yarn add -D swc-plugin-remove-node-protocol You can check the compatibility of versions on https://plugins.swc.rs/
Via .swcrc
{ "jsc": { "experimental": { "plugins": [ [ "swc-plugin-remove-node-protocol" ] ] } } }Input Code:
import fs from 'node:fs'; import path from 'node:path'; const dynamic = import('node:url'); const fs = require('node:fs'); const path = require.resolve('node:path'); export * as fs from 'node:fs'; export * from 'node:crypto'; export { readFile } from 'node:fs'; module.exports = { fs: require('node:fs') }; module.exports.fs = require('node:fs'); console.log('node:fs'); fn('node:fs')Output:
import fs from 'fs'; import path from 'path'; const dynamic = import('url'); const fs = require('fs'); const path = require.resolve('path'); export * as fs from 'fs'; export * from 'crypto'; export { readFile } from 'fs'; module.exports = {fs: require('fs')}; module.exports.fs = require('fs'); console.log('node:fs'); fn('node:fs');environment:
pnpm install pnpm run prepack pnpm run test cargo test