как исправить cb.apply не является функцией, npx + preact-cli

Я пытаюсь создать новый проект с 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. Я также обновил заголовок вопроса соответственно.


person lhk    schedule 05.11.2020    source источник


Ответы (1)


Preact принимает Node v12 как последнюю версию.

person nebulousecho    schedule 31.03.2021