自动装填器
节点.js 加载器 用于装入 TypeScript 文件.
特征
- 应要求将类型脚本转换为无害环境管理
- 经典节点.js 分辨率( 无扩展目录导入)
- 用于提高性能的缓存
- 支持节点.js v12.20.0+
- 处理
node:导入前缀 - 决定:
tsconfig.jsonpaths - 从 JSON 模块命名的导入
Protip: 使用时使用 装弹机 或者说 tx
自动装填器 仅转换ES模块(
.mjs编号 :.mts扩展或.js文件在module类型包).转换普通JS文件( E)
.cjs编号 :.cts扩展或.js文件在commonjs类型软件包,使用此软件包 装弹机。 。 。 .或者,使用 tx 自动处理它们.
安装
npm install --save-dev @esbuild-kit/esm-loader
使用量
过 @esbuild-kit/esm-loader 输入 --loader 旗帜.
node --loader @esbuild-kit/esm-loader ./file.ts
类型脚本配置
使用以下属性: tsconfig.json 在工作目录中:
strict: 是否转换为严格模式jsx: 是否改变JSX警告: 设定为
preserve,JSX语法将保持不变。 为了防止Node.js扔出语法错误,将另一个能将JSX转换为JS的Node.js加载器链起来.jsxFactory:如何改造JSXjsxFragmentFactory:如何改变JSX碎片jsxImportSource: 从何处导入 JSX 函数 :allowJs: 是否将 tsconfig 应用到 JS 文件paths:用于解决别名
自定义 tsconfig.json 路径
默认, tsconfig.json 将从当前工作目录中检测到.
要设置自定义路径,请使用 ESBK_TSCONFIG_PATH 环境变量 :
ESBK_TSCONFIG_PATH=./path/to/tsconfig.custom.json node --loader @esbuild-kit/esm-loader ./file.ts
缓存
模块转换在系统缓存目录中被缓存(TMPDIR) (中文(简体) ). 变形被内容散列所缓存,所以重复的依赖性不会被重新转换.
设置环境变量 ESBK_DISABLE_CACHE 至真值以禁用缓存 :
ESBK_DISABLE_CACHE=1 node --loader @esbuild-kit/esm-loader ./file.ts
财务问题
它能导入 JSON 模块吗 ?
对 这个加载器转接了JSON模块,因此它也与命名的导入兼容.
它能否通过网络导入无害环境管理模块?
Node.js 已内置支持网络导入 后边 --experimental-network-imports 旗帜。 。 。 .
你可以通过它 esm-loader数字 :
node --loader @esbuild-kit/esm-loader --experimental-network-imports ./file.ts
它能在没有扩展名的情况下解决文件吗 ?
在无害环境管理中,进口路径必须是明确的(必须包括文件名称和扩展名).
对于后向相容性,此加载器会为扩展添加经典节点分辨率的支持: .js, (中文(简体) ), .json, (中文(简体) ), .ts, (中文(简体) ), .tsx, (中文(简体) ), .jsx解决 index 按目录名称编写的文件也起作用.
import file from './file' // -> ./file.js
import directory from './directory' // -> ./directory/index.js
它能使用Node.js的CommonJS解析算法吗?
无害环境管理进口解决方案预计有明确的进口路径,而通用JS解决方案预计有隐含进口(如无扩展和目录进口).
由于这一变化,Node.js改变了它如何导入一个既匹配文件又匹配目录的路径. 在无害环境管理中,目录将被导入,但在CJS中,文件将被导入.
要用于通用JS分辨率算法,请使用 --experimental-specifier-resolution=node 旗帜.
node --loader @esbuild-kit/esm-loader --experimental-specifier-resolution=node ./file.ts
相关
-
tx - 节点.js 运行时间供电,使用
@esbuild-kit/cjs-loader财务报告和审定财务报表@esbuild-kit/esm-loader。 。 。 . -
@ esbuilt- kit/ cjs- loader (英语) - TypeScript & MESM 使用Node.js加载器API到CJS转接器.