我正在尝试运行一个脚本,脚本创建在一个带有两个.ts文件的普通文件夹中。一个具有脚本,另一个具有运行它的助手函数。我还导入了更多的东西,如axios或表单数据。
问题是,当我尝试使用ts- node : script.ts运行脚本时,会出现以下错误:
TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts"
我的package.json:
{
"dependencies": {
"@types/node": "^17.0.23",
"axios": "^0.26.1",
"form-data": "^4.0.0",
"showdown": "^2.0.3",
"ts-node": "^10.7.0",
"typescript": "^4.6.3"
},
"type": "module"
}
我的tsconfig.json:
{
"compilerOptions": {
"esModuleInterop": true
},
"include": ["/**/*.ts"],
"exclude": ["node_modules"]
}
我在script.ts文件中的导入是:
import { datoManagementPrimaryEnvironment } from "./content.management";
import {
createContent,
uploadToCloudfare,
getEntryFromDatoWithTheId,
getFilters,
} from "./helpers";
在helpers.ts中:
import { datoManagementPrimaryEnvironment } from "./content.management";
import axios from "axios";
import FormData from "form-data";
var showdown = require("showdown");
有人知道我做错了什么吗?谢谢!
发布于 2022-04-05 19:34:26
从"type": "module"
中删除package.json
并将tsconfig.json
更改为:
{
"compilerOptions": {
"esModuleInterop": true,
"moduleResolution": "node"
},
"include": ["/**/*.ts"],
"exclude": ["node_modules"]
}
发布于 2022-11-15 16:45:29
下面是如何将TypeScript与本机ESM结合使用
package.json
更新为:{
"type": "module",
// …
}
@tsconfig/node-lts-strictest-esm
依赖项:npm i -D @tsconfig/node-lts-strictest-esm
tsconfig.json
更新为:{
"$schema": "https://json.schemastore.org/tsconfig",
"extends": "@tsconfig/node-lts-strictest-esm/tsconfig.json",
// …
}
.js
扩展名的导入,例如:import { Foo } from './common/foo.js';
ts-node-esm file.ts
命令而不是ts-node file.ts
。这应该能起作用。
另外,看看详细指南。
发布于 2022-04-06 10:01:58
当您想要使用ts节点时,您应该尝试使用ts-node scripts.ts
而不是node scripts.ts
运行该文件。
您还可以参考npmjs.com上的用法示例。
https://stackoverflow.com/questions/71757074
复制相似问题