記錄在【Windows】下安裝【node-canvas】遇到的各種問題(無法安裝canvas,安裝canvas包報錯error...)

来源:https://www.cnblogs.com/ljhou/archive/2023/05/28/17437701.html
-Advertisement-
Play Games

好久沒更新博客了,因為工作越來越忙,沒什麼時間去記錄一些問題,最近閑下來一點,由於某些原因不得不暫時在Windows下做開發,項目用到了node-canvas處理圖片什麼的,在安裝的時候各種報錯,確實讓人很抓狂,這裡簡單記錄下: 首先說明下,node-canvas的 官方git倉庫 https:// ...


好久沒更新博客了,因為工作越來越忙,沒什麼時間去記錄一些問題,最近閑下來一點,由於某些原因不得不暫時在Windows下做開發,項目用到了node-canvas處理圖片什麼的,在安裝的時候各種報錯,確實讓人很抓狂,這裡簡單記錄下:

首先說明下,node-canvas

  官方git倉庫 https://github.com/Automattic/node-canvas

在沒有安裝前置依賴之前,直接npm install canvas是一定裝不上的,其實網上有很多關於win安裝canvas的文章,報錯的時候搜了很多,不過最官方的方法在這:

  Installation: Windows · Automattic/node-canvas Wiki (github.com)

官方給出了兩種安裝依賴的方法,一種是一個一個純手動安裝(不建議,比較麻煩),一種是下載Chocolatey然後一鍵安裝,我的建議是使用Chocolatey 更方便一些

 

下麵給出使用Chocolatey方法安裝node-canvas的步驟

 

    一、安裝Chocolatey

    1)打開終端管理員powershell,運行

Get-ExecutionPolicy

    如果顯示 Restricted ,那麼要執行

Set-ExecutionPolicy AllSigned

    2)複製如下命令到shell,回車執行

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

      等待一會兒,如果沒有報錯error的信息,執行下 choco,出現版本信息,那麼就應該安裝成功了

 

 

 

    二、安裝canvas前置依賴

    在shell中執行

choco install -y python2 gtk-runtime microsoft-build-tools libjpeg-turbo

    這個過程看網路情況,我這邊是會等幾分鐘

     一般情況應該只有一個包 libjpeg-turbo 顯示安裝錯誤,其他都是安裝成功的,不過沒關係,打開C盤看下如果 C:\libjpeg-turbo64 文件夾下是這樣的,那麼就代表成功了(博主在win10、win11裝過都是這樣滴)

    

   三、下載GTK-2

    首先下載安裝包,下載完成後,解壓到 C:\GTK

      -win64

         -win32

    

 

     四安裝canvas

    1)在項目根目錄下創建 .npmrc 文件(如果已存在就把代碼加在下麵即可),內容如下

canvas_binary_host_mirror=https://registry.npmmirror.com/-/binary/canvas

     這一步非常的重要,就是給npm安裝canvas時換個鏡像,博主就是在這步卡了很久,最後發現是預設GitHub的源太慢了,導致總是安裝失敗,法克魷!

 

      2)ok到這一步終於可以安裝canvas了!

npm install canvas

        沒什麼問題的話就可以很快安裝成功了,good

 

 

    ps:在換源之前我這邊是這麼報錯的,有時候還不一樣

> npm install canvas

> [email protected] install C:\Users\LijiaHou\Desktop\ReactAndVue\koaDemo\node_modules\canvas
> node-pre-gyp install --fallback-to-build --update-binary

node-pre-gyp ERR! install request to https://github.com/Automattic/node-canvas/releases/download/v2.11.2/canvas-v2.11.2-node-v83-win32-unknown-x64.tar.gz failed, reason: connect ETIMEDOUT
20.205.243.166:443
node-pre-gyp WARN Pre-built binaries not installable for [email protected] and [email protected] (node-v83 ABI, unknown) (falling back to source compile with node-gyp)
node-pre-gyp WARN Hit error request to https://github.com/Automattic/node-canvas/releases/download/v2.11.2/canvas-v2.11.2-node-v83-win32-unknown-x64.tar.gz failed, reason: connect ETIMEDOUT 20.205.243.166:443
gyp ERR! find VS
gyp ERR! find VS msvs_version was set from command line or npm config

 

    應該沒有遺漏什麼步驟吧,最後希望能幫到朋友們√

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • # WPF佈局基礎 ## WPF的佈局原則 + 一個視窗中只能包含一個元素 + 不應顯示設置元素尺寸 + 不應使用坐標設置元素的位置 + 可以嵌套佈局容器 ## WPF有哪些佈局容器? + Grid:網格。可以自定義行和列並通過行列的數量、行高和列寬來調整控制項的佈局。近似於HTML中的Table。 ...
  • 1. 什麼是MAF和MEF? MEF和MEF微軟官方介紹:https://learn.microsoft.com/zh-cn/dotnet/framework/mef/ MEF是輕量化的插件框架,MAF是複雜的插件框架。 因為MAF有進程隔離和程式域隔離可選。我需要插件進程隔離同時快速傳遞數據,最後 ...
  • 有個.NET面試官反饋面試了一個小白,問他用過哪些.NET庫,結果只回答上了幾個。作為一個.NET開發者,瞭解一些常用的.NET庫是非常重要的。本文將介紹.NET開發人員應該瞭解的10個常用.NET庫,這些庫可以幫助開發人員提高開發效率、簡化開發流程,開發出優秀的.NET應用程式。 **1、Auto ...
  • 《機器人SLAM導航核心技術與實戰》第1季:第5章_機器人主機 視頻講解 【第1季】5.第5章_機器人主機-視頻講解 【第1季】5.1.第5章_機器人主機_X86與ARM主機對比-視頻講解 【第1季】5.2.第5章_機器人主機_ARM主機樹莓派3B+-視頻講解 【第1季】5.3.第5章_機器人主機_ ...
  • # shell 常用命令3 ## 1 sed 用來自動編輯文件,可以用來實現替換配置文件的配置 ```shell 語法: sed [-hnV][-e][-f][文本文件] ``` > **參數說明**: > > - -e\或--expression=\ 以選項中指定的script來處理輸入的文本文件 ...
  • 要使用 `systemctl` 啟動單個服務,其中包含多個進程,你可以使用 Systemd 的 `template` 機制。以下是使用 Systemd 'template' 以創建一個可同時啟動多個進程的服務單元文件的過程: 1. 為你的服務創建一個 template 服務單元文件。服務單元文件通常 ...
  • # 欄位類型 | 數據類型 | 位元組 | 範圍 | | | | | |TINYINT|1 位元組|-2^7 + 1 ~ 2^7 - 1| |SMALLINT|2 位元組|-2^15 + 1 ~ 2^15 - 1| |INT|4 位元組|-2^31 + 1 ~ 2^31 - 1| |BIGINT|8 位元組| ...
  • 摘要:條件表達式函數中出現結果集不一致問題,我們首先要考慮是否入參數據類型不一致導致出參不一致。 本文分享自華為雲社區《GaussDB(DWS)條件表達式函數返回錯誤結果集排查》,作者:yd_211369925 。 (一)案例背景 客戶使用greatest獲取並返回參數列表中值最大的表達式的值,子查 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...