如何阻止TypeScript在编译输出文件中添加不需要的prismjs导入语句
问题根因
你在代码中编写了普通ES导入语句,TypeScript配置的模块标准为ES2020,编译时会完整保留运行时使用的导入语句,不会自动移除。
可行解决方案
方案1:全局引入场景(最适合你当前的渲染进程代码)
如果你已经在HTML中通过script标签引入了PrismJS,Prism已经挂载到window全局对象上,不需要模块导入:
- 删掉
script.ts中的import { highlightElement } from "prismjs";代码 - 在
script.ts顶部增加全局类型声明,让TS识别全局Prism的类型:
declare const Prism: import('prismjs').Prism;
- 把调用代码改为:
Prism.highlightElement(el);
编译后的JS文件不会出现任何prism相关的导入语句,类型校验也完全正常。如果要全局生效这个声明,可以在项目根目录新建global.d.ts写入上述声明,再将文件路径加入tsconfig的include数组即可。
方案2:打包工具外置场景
如果你使用Webpack、Vite等打包工具构建项目,可以在打包配置中把prismjs标记为外置(external)依赖,打包时不会把PrismJS打入产物,也不会生成多余的导入加载逻辑。
内容的提问来源于stack exchange,提问作者A Programmer
相关产品推荐
相关产品推荐

