Я пытаюсь создать новый проект с preact-cli
:
npx preact-cli create typescript temp
Он терпит неудачу с сообщением об ошибке:
npm ERR! cb.apply is not a function
Я использую следующие версии:
- узел v15.0.1
- нпм 7.0.3
- нпкс 10.2.2
На момент написания этой статьи последняя версия preact-cli, опубликованная в npm, — 3.0.3.
Мои попытки исправить это:
Сообщение об ошибке указывает на файл журнала, и там ошибка довольно заметна:
...
7 http fetch GET 304 https://registry.npmjs.org/preact-cli 147ms (from cache)
8 silly pacote tag manifest for preact-cli@latest fetched in 167ms
9 verbose stack TypeError: cb.apply is not a function
9 verbose stack at /home/lhk/.npm-global/lib/node_modules/npx/node_modules/npm/node_modules/graceful-fs/polyfills.js:287:18
9 verbose stack at FSReqCallback.oncomplete (node:fs:184:5)
Видимо это ошибка в graceful-fs/polyfills.js
. Итак, я посмотрел на это, это внутри функции с именем statFix
. Что, по-видимому, исправляет некоторые несовместимости со старыми версиями Node. Погуглив statFix
, позвольте мне перейти на этот сайт. Они говорят, что нужно просто закомментировать использование функции statFix. Я пробовал, но ошибка остается.
Поэтому я подумал, что вместо этого пойду на npm install -g preact-cli
и посмотрю, работает ли он лучше. Существует длинный список предупреждений и устаревших сообщений. Одно из предупреждений таково:
npm WARN deprecated [email protected]: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.
Мне он кажется вероятным преступником. В нем даже прямо сказано, что он сломается на узле v14+ (у меня v15).
Можно ли использовать preact-cli с версией узла выше v14?
ОБНОВЛЕНИЕ: мне пришлось удалить Node v15 и вместо этого установить v14 LTS. Проблема остается прежней. Похоже, это не имеет прямого отношения к v15. Я также обновил заголовок вопроса соответственно.