透過Angular 來開發 Google Chrome Extension 的重點設定

 

透過Angular 來開發 Google Chrome Extension 的重點設定

如果沒接觸的朋友可以參考這一篇 https://medium.com/hybrid-maker/簡單來做一個-chrome-extension-2359e43f282a

Google Chrome Extension Wiki
Build Status

因為公司內部有個系統是用Chrome Extension,來做操作介面,然後是使用ko.js ,費了好大筆勁目前已經換成 Angular10

這邊就先來做個筆記

設定 manifest.json

  1. 編輯 {rootproject}/manifest.json
  2. 設定以下的內容
{
  "manifest_version": 2,
  ...,
  "content_security_policy": "script-src 'self' 'unsafe-eval' https://xxx; object-src 'self'",
  "content_scripts": [
   ...
  ]
}

"script-src ‘self’ 這個security policy務必要設定

設定 angular.json

  1. 編輯 {root}/{angular-project}/angular.json
  2. 設定輸出專案的位置,如下
{
  "projects": {
    "forest-admin-client": {
      "architect": {
        "build": {
          "builder": "@angular-devkit/build-angular:browser",
          "options": {
            "outputPath": "輸出專案的位置",

本專的outputPath設定是 dist/forest-admin-client

設定 angular 的 index.html

  1. 編輯 {root}/{angular-project}/src/index.html
  2. 內容如下
<!doctype html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <title>ForestAdminClient</title>
  <base href="/{輸出專案的位置}"> 
</head>
    ...
</html>

ex 輸出專案的位置: dist/forest-admin-client

angular routing 的設定

因為Chrome Extension不支援 Root index, 所以這邊要用 useHash

請修改 AppRoutingModule 內容如下

import { ContactChartTokenComponent } from './contact-chart-token/contact-chart-token.component';
import { AmbiMappingComponent } from './ambi-mapping/ambi-mapping.component';
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';


const routes: Routes = [
  { path: 'ambi/mapping', component: AmbiMappingComponent },
  { path: 'contact/charttoken', component: ContactChartTokenComponent },
];

@NgModule({
  imports: [RouterModule.forRoot(routes, {
    enableTracing: true,
    useHash: true
  })],
  exports: [RouterModule]
})
export class AppRoutingModule { }

useHash: true <-- 這個打開

完成

使用連結大概會如下的形式

forest-admin-client/dist/forest-admin-client/index.html#/contact/charttoken


md code:

留言

這個網誌中的熱門文章

angular 如何Http 如何設定 CORS (Cross-Origin Resource Sharing)

Google Map 單車路徑計算坡度和角度小工具

Google URL Shortener API 快速教學