本文介紹如何快速創建一個基於webpack構建的chrome擴展,由於chrome擴展開發概念很多,如果需要,請結合附錄
食用。
首先需要安裝好nodejs,推薦用nvs或其他工具管理node版本。這裏用的是v8.5.0
版本(之前用了v11.1.0
在運行npm start
的時候會報錯,因爲對chrome擴展來說node只是個構建工具,並且用nvs
來管理node版本切換很方便,就不追究爲什麼報錯了)。
一、安裝yeoman
node -g install yo
二、安裝生成chrome擴展的generator
npm install -g generator-chrome-extension-kickstart
三、使用yeoman創建項目
# 創建一個空目錄
mkdir helloworld && cd helloworld
# 運行yeoman生成項目
yo chrome-extension-kickstart .
然後按照提示進行項目配置
上圖是選擇需要創建的UI action
No:不創建
Browser:瀏覽器級別的action,一個瀏覽器一個實例
Page:頁面級別的action,每個頁面一個實例
這裏我們先選擇Page
上圖是選擇需要覆蓋的瀏覽器的一些默認頁面
No:不需要覆蓋任何默認頁面
Bookmarks Page:覆蓋書籤頁面
History Page:覆蓋歷史頁面
Newtab Page:覆蓋新標籤頁面
這裏我們選擇No
上圖是選擇這個擴展需要的一些頁面或者腳本
Options Page:表示需要一個配置頁面
Devtools Page:表示在Devtools裏需要新建一個頁面
Content Scripts:表示需要一個與所訪問的頁面一起運行的腳本
Omnibox:表示給瀏覽器地址欄增加一個功能
這裏我們全部選擇,都來演示一下。根據提示,按a
全選
上圖是這個擴展需要的瀏覽器權限,比如Cookies就是擴展可以獲取到cookie數據
這裏爲了簡單就按a
全選了。接下來一路回車就可以了
上圖可以看出yeoman爲我們生成了很多項目文件並且安裝了依賴
四、運行擴展
啓動項目編譯
npm start
可以看到項目已經編譯完生成了幾個文件
開另外一個命令行窗口
編譯生成的文件在dist/chrome/
目錄下,可以用瀏覽器把這個目錄加載起來
打開瀏覽器的擴展管理頁面,打開開發者模式,然後加載已解壓的擴展程序,選擇編譯生成的dist/chrome/
目錄
然後發現擴展顯示了一個錯誤按鈕
點擊進去之後提示'input' is not allowed for specified platform.
,這個是因爲我們之前選擇權限
的時候選擇了全部,但是input
權限不支持,我們需要刪掉這個權限(或者也可以在選擇權限的時候不勾選input
)。
打開app/manifest.json
文件,把這一行刪掉
然後重新加載一下擴展,錯誤按鈕就不見了
可以看到擴展已經成功運行起來了
五、進行開發
項目主要文件在app/
目錄下面,一般只要修改這裏面的文件就夠了
六、打包
npm run build
運行完上面的命令之後,會在packages/
目錄下生成zip包