#node.js #typescript #tsc #ts-node #ts-node-dev
Вопрос:
Я пытаюсь использовать пакет npm fs-xattr
в проекте машинописи, но, похоже, я не могу заставить работать и tsc
то, и ts-node-dev
другое .
Когда я запускаю npm run build amp;amp; 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));