我正在尝试fs-xattr
在 Typescript 项目中使用 npm 包,但我似乎无法在两者tsc
和ts-node-dev
.
当我运行npm run build && node index.js
它工作正常。当我运行时npm run dev
,它会因错误而崩溃:
Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: /home/meme/xfs/node_modules/fs-xattr/index.js
我希望在开发时能够使用什么ts-node-dev
,所以我可以同时获得tsc
并ts-node-dev
正常工作,包括更改任何 JSON 值或节点版本或其他任何东西,没问题。
使用这些文件在节点 14.17.6 上运行的最简单重现方法:
包.json
{
"name": "xfs",
"type": "module",
"scripts": {
"dev": "ts-node-dev index.ts",
"build": "tsc"
},
"devDependencies": {
"@types/node": "^16.9.1",
"ts-node": "^10.2.1",
"ts-node-dev": "^1.1.8",
"typescript": "^4.4.3"
},
"dependencies": {
"fs-xattr": "^0.4.0"
}
}
tsconfig.json
{
"compilerOptions": {
"lib": ["es2020"],
"target": "es2020",
"moduleResolution": "Node",
"strict": true,
"esModuleInterop": true
}
}
索引.ts
import { getAttribute } from 'fs-xattr'
async function run() {
console.log('RUN');
const r = await getAttribute('/some/file.txt', 'whatever');
console.log('>>>>', r);
}
run().catch(e => console.log(e));