最近试着将之前的一些nodejs程序改成typescript封装,最初是通过将ts在运行时编译成js时实现的,今天试了下直接运行ts脚本试了下,发现再Webstrom中是可以直接运行的。

但是,当使用es import的时候会报错,

  1. import {foo} from "./foo";

    foo();
    console.log('hello world')

错误信息如下:(node:10684) Warning: To load an ES module, set “type”: “module” in the package.json or use the .mjs extension.

最初以为设置package.json的module就能解决,后来发现这个配置又和typescript不兼容,最后发现可以通过ts-node库解决这个问题,方法如下:

  1. 添加ts-nodetypescript库 (ts-node依赖typescript库),package.json如下所示

  2. tsconfig.json中设置compilerOptions.module为 CommonJS

  3. 启动项添加node启动参数:–require ts-node/register

版权声明:本文为TianFang原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/TianFang/p/16479690.html