簡體   English   中英

preact-cli "^3.4.2" 創建的默認項目沒有運行

[英]The default project created by preact-cli "^3.4.2" doesn't run

我正在嘗試啟動一個 preact 項目。 但是 preact-cli 創建的默認模板不會運行。 這是我所做的:

npx preact-cli create default my-project
cd my-project
npm install # this is not necessary I think
npm run dev

這會導致錯誤消息:

Error: error:0308010C:digital envelope routines::unsupported
at new Hash (node:internal/crypto/hash:71:19)
at Object.createHash (node:crypto:133:10)

一些版本:

  • npx 和 npm 是 8.12.1
  • 節點是 v18.12.1

操作系統:

Distributor ID: Pop
Description:    Pop!_OS 22.04 LTS
Release:    22.04
Codename:   jammy

Stackblitz 上的在線版本:

為了讓問題更容易回答,我在 Stackblitz 上創建了一個在線示例: https://stackblitz.com/edit/node-zby5qu?file=src%2Findex.js

這行得通!

作為解決我的問題的第一次嘗試,我將 package-lock.json 文件從 stackblitz 復制到我的本地機器並重新安裝依賴項。 但問題仍然存在。

所以這似乎與我的本地機器有關。

相關問題:

這個問題建議切換到 Node 版本 16: 錯誤:錯誤:0308010C:數字信封例程::在新的 Hash(節點:內部/加密/哈希:71:19)不受支持,這個問題https://github.com/matiasdelellis /facerecognition/issues/613說反應腳本的過時版本可能會導致問題。

現在 Node 18.13 是 LTS 版本,我不想降級到 16。據我所知,我有最新版本的 preact-cli。 從我的包鎖文件:

"node_modules/preact-cli": {
  "version": "3.4.4",
  "resolved": "https://registry.npmjs.org/preact-cli/-/preact-cli-3.4.4.tgz",

最新版本已於3天前發布: https://www.npmjs.com/package/preact-cli?activeTab=readme

preact-cli的倉庫中復制我的答案

Preact-CLI v3 建立在 Webpack v4 之上,它不支持開箱即用的較新版本的 Node。 Node 的重大變化導致了很多生態系統問題。

但是,您不需要降級; 相反,您可以設置NODE_OPTIONS=--openssl-legacy-provider 如果您使用的是非 Windows 系統,可以通過對package.json進行以下更改來完成:

{
  "scripts": {
    "dev": "NODE_OPTIONS=--openssl-legacy-provider preact watch"
    "build": "NODE_OPTIONS=--openssl-legacy-provider preact build"
  }
}

我們確實為 CLI 發布了預發布版,可作為4.0.0-next.1 如果您想使用它,我建議使用以下內容初始化一個新項目:

$ [npm init / yarn create] preact-cli default my-project

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM