iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 28
0
Modern Web

Chrome extension 學習手札系列 第 28

Chrome extension 學習手札 28 - 延伸學習 - 使用 React 開發一個應用程式

  • 分享至 

  • xImage
  •  

既然有Vue,怎麼可以沒有React呢?

那我們今天就來用React完成一個Chrome extension吧!

首先,我們要安裝 React,已經安裝過的可以省略,

npm install -g create-react-app

接下來就是創建一個react app啦

create-react-app my-app

打開專案來看,似乎會發現一個很面熟的檔案 manifest.json

*public/

{
  "short_name": "React App",
  "name": "Create React App Sample",
  "icons": [
    {
      "src": "favicon.ico",
      "sizes": "64x64 32x32 24x24 16x16",
      "type": "image/x-icon"
    }
  ],
  "start_url": ".",
  "display": "standalone",
  "theme_color": "#000000",
  "background_color": "#ffffff"
}

雖然還不清楚緣由,但絕對不是巧合!!
不過我們還是直接覆蓋掉吧,並且放兩個icon到public底下

{
  "manifest_version": 2,
  "name": "React ext",
  "description": "React ext test",
  "version": "0.0.1",

  "browser_action": {
    "default_popup": "index.html",
    "default_icon": "icon128.png"
  },
  "icons": {
    "128": "icon128.png"
  },
  "permissions": ["activeTab"]
}

然後執行

npm build

於是build/資料夾就會產生以下檔案

然後我們載入到chrome以後看一下結果

果然!還是有安全性的問題,所以要主動增加sha256的雜湊金鑰,
而我直接拿它提示的雜湊放入我的安全性策略裡

"content_security_policy": "script-src 'self' 'sha256-FC666qq/sDUJ5h1wAnuD99ocJuDhfA+8O4fR9EOPtvQ='; object-src 'self'",

再編譯一次,就正常囉!

但是我們這樣系統沒有後台腳本可以使用,所以如果要後台腳本的話
就必須要自己copy一份到build資料夾了,所以我們可以在package.json中新增一個指令

"build:ext": "react-scripts build && cp src/background.js build/background.js",

這樣就可以順便copy一份後台到build囉

參考資料:https://medium.com/@gilfink/building-a-chrome-extension-using-react-c5bfe45aaf36


上一篇
Chrome extension 學習手札 27 - 延伸學習 - 使用 Vue Cli 開發應用程式
下一篇
Chrome extension 學習手札 29 - 快速開發及彙總
系列文
Chrome extension 學習手札30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言