electron-egg icon indicating copy to clipboard operation
electron-egg copied to clipboard

請問一下有關ee-bin Angular開發模式的設定方式

Open dase1353 opened this issue 2 years ago • 8 comments

作者您好: 我是使用Angular當作前端進行開發 在最新的3.7.0版本中

  dev: {
    frontend: {
      directory: "./frontend/AngularprojectName",
      cmd: "npm",
      args: ["run", "start"],   //執行ng serve 啟動Angular
      protocol: "http://",
      hostname: "localhost",
      port: 4200,  //改成Angular啟動的預設port
      indexPath: "index.html",
    },
    electron: {
      directory: "./",
      cmd: "electron",
      args: [".", "--env=local"],
    },
  },

但遇到網頁確實啟動後,electron無法抓到該網站的問題,已確認運行後網站可以正常的開啟 也稍微在ee-core及ee-bin中,利用一些console進行過偵錯,但目前看起來只有發現在進行網址GET動作的時候,是不斷失敗的狀態,直到錯誤30次

可否協助看一下是哪裡有設定錯誤嗎?

dase1353 avatar Sep 25 '23 15:09 dase1353

electron config 文件夹下面应该加入Angular端口配置 config.developmentMode

nick2834 avatar Sep 26 '23 08:09 nick2834

@nick2834 您好 electron/config 底下似乎沒有這個檔案,請問有相關文件可以查閱嗎 我在官網上似乎沒有看到,不過EE2.0版本有下面這些東西

config.developmentMode = {
    default: 'vue',
    mode: {
      vue: {
        hostname: 'localhost',
        port: 8080
      },
      react: {
        hostname: 'localhost',
        port: 3000
      },
      html: {
        hostname: 'localhost',
        indexPage: 'index.html' // 首页
      },
    }
};

請問您是指在config.default新增這個嗎

dase1353 avatar Sep 26 '23 10:09 dase1353

作者您好: 我是使用Angular當作前端進行開發 在最新的3.7.0版本中

  dev: {
    frontend: {
      directory: "./frontend/AngularprojectName",
      cmd: "npm",
      args: ["run", "start"],   //執行ng serve 啟動Angular
      protocol: "http://",
      hostname: "localhost",
      port: 4200,  //改成Angular啟動的預設port
      indexPath: "index.html",
    },
    electron: {
      directory: "./",
      cmd: "electron",
      args: [".", "--env=local"],
    },
  },

但遇到網頁確實啟動後,electron無法抓到該網站的問題,已確認運行後網站可以正常的開啟 也稍微在ee-core及ee-bin中,利用一些console進行過偵錯,但目前看起來只有發現在進行網址GET動作的時候,是不斷失敗的狀態,直到錯誤30次

可否協助看一下是哪裡有設定錯誤嗎?

我没用过Angular ,但理论上是可以的,你的 bin.json配置文件看着也正常。

试试 分开启动 前端和electron

打开两个终端

npm run dev-frontend

npm run dev-electron

然后看看控制台 加载的 前端服务是否正确,端口是不是你配置的4200

wallace5303 avatar Oct 12 '23 10:10 wallace5303

好的,我先簡單分享一下前端啟動的結果 image

看起來啟動沒問題,將網址打開也有正確的顯示畫面

dase1353 avatar Oct 12 '23 10:10 dase1353

後端啟動大概是這樣 image 查看控制台的話 會先看到EE優先載入一個file://...Boot的畫面,沒有跟http://localhost:4200/有關的動作或請求 接著轉轉轉到最後就跳黑字Booting failure, please check frontend serve is runing !

另外我先臨時採用從控制台下命令this.document.location = "http://localhost:4200/" 的方式轉到前端網址,並且能夠正常使用,但是這個動作要在Booting failure失敗之後做,不然會被強制切回Booting failure畫面

dase1353 avatar Oct 12 '23 10:10 dase1353

作者您好: 我是使用Angular當作前端進行開發 在最新的3.7.0版本中

  dev: {
    frontend: {
      directory: "./frontend/AngularprojectName",
      cmd: "npm",
      args: ["run", "start"],   //執行ng serve 啟動Angular
      protocol: "http://",
      hostname: "localhost",
      port: 4200,  //改成Angular啟動的預設port
      indexPath: "index.html",
    },
    electron: {
      directory: "./",
      cmd: "electron",
      args: [".", "--env=local"],
    },
  },

但遇到網頁確實啟動後,electron無法抓到該網站的問題,已確認運行後網站可以正常的開啟 也稍微在ee-core及ee-bin中,利用一些console進行過偵錯,但目前看起來只有發現在進行網址GET動作的時候,是不斷失敗的狀態,直到錯誤30次 可否協助看一下是哪裡有設定錯誤嗎?

我没用过Angular ,但理论上是可以的,你的 bin.json配置文件看着也正常。

试试 分开启动 前端和electron

打开两个终端

npm run dev-frontend

npm run dev-electron

然后看看控制台 加载的 前端服务是否正确,端口是不是你配置的4200

測試了一下大致上是這樣,我再研究看看是哪邊出了問題造成的 感謝您的回覆

dase1353 avatar Oct 12 '23 10:10 dase1353

作者您好: 我是使用Angular當作前端進行開發 在最新的3.7.0版本中

  dev: {
    frontend: {
      directory: "./frontend/AngularprojectName",
      cmd: "npm",
      args: ["run", "start"],   //執行ng serve 啟動Angular
      protocol: "http://",
      hostname: "localhost",
      port: 4200,  //改成Angular啟動的預設port
      indexPath: "index.html",
    },
    electron: {
      directory: "./",
      cmd: "electron",
      args: [".", "--env=local"],
    },
  },

但遇到網頁確實啟動後,electron無法抓到該網站的問題,已確認運行後網站可以正常的開啟 也稍微在ee-core及ee-bin中,利用一些console進行過偵錯,但目前看起來只有發現在進行網址GET動作的時候,是不斷失敗的狀態,直到錯誤30次 可否協助看一下是哪裡有設定錯誤嗎?

我没用过Angular ,但理论上是可以的,你的 bin.json配置文件看着也正常。 试试 分开启动 前端和electron

打开两个终端

npm run dev-frontend npm run dev-electron 然后看看控制台 加载的 前端服务是否正确,端口是不是你配置的4200

測試了一下大致上是這樣,我再研究看看是哪邊出了問題造成的 感謝您的回覆

把前端、ee配置 中的 localhost 都换成 127.0.0.1 试试

wallace5303 avatar Oct 19 '23 10:10 wallace5303

作者您好: 我是使用Angular當作前端進行開發 在最新的3.7.0版本中

  dev: {
    frontend: {
      directory: "./frontend/AngularprojectName",
      cmd: "npm",
      args: ["run", "start"],   //執行ng serve 啟動Angular
      protocol: "http://",
      hostname: "localhost",
      port: 4200,  //改成Angular啟動的預設port
      indexPath: "index.html",
    },
    electron: {
      directory: "./",
      cmd: "electron",
      args: [".", "--env=local"],
    },
  },

但遇到網頁確實啟動後,electron無法抓到該網站的問題,已確認運行後網站可以正常的開啟 也稍微在ee-core及ee-bin中,利用一些console進行過偵錯,但目前看起來只有發現在進行網址GET動作的時候,是不斷失敗的狀態,直到錯誤30次 可否協助看一下是哪裡有設定錯誤嗎?

我没用过Angular ,但理论上是可以的,你的 bin.json配置文件看着也正常。 试试 分开启动 前端和electron

打开两个终端

npm run dev-frontend npm run dev-electron 然后看看控制台 加载的 前端服务是否正确,端口是不是你配置的4200

測試了一下大致上是這樣,我再研究看看是哪邊出了問題造成的 感謝您的回覆

把前端、ee配置 中的 localhost 都换成 127.0.0.1 试试

測試了一下可以正常運行!!!

不過前端Angular專案在第一次啟動的時候,編譯時間有可能會在EE預設的30次GET檢查之後才完成,導致畫面已經跳到Fail了。 第二次重新執行npm run dev就會正常

不過已經確定可以正常跳轉,感謝各位的協助!!

dase1353 avatar Oct 20 '23 16:10 dase1353

补充一下针对 Angular 的配置做一下完整的修改:

  dev: {
    frontend: {
      directory: "./frontend",
-     cmd: 'npm',
+     cmd: "npx",
-     args: ['run', 'dev'],
+     args: ["ng", "s", "--hmr", "--host", "127.0.0.1"],
      protocol: "http://",
-     hostname: 'localhost',
+     hostname: "127.0.0.1",
      port: 4200,
      indexPath: "index.html",
    },
    electron: {
      directory: "./",
      cmd: "electron",
      args: [".", "--env=local", "--color=always"],
    },
  },

  /**
   * 构建
   * ee-bin build
   */
  build: {
    frontend: {
      directory: "./frontend",
-     cmd: 'npm',
+     cmd: "npx",
-     args: ['run', 'build'],
+     args: ["ng", "build", "--base-href=./"],
    },
  },

@wallace5303 建议成为文档的一部分。

cipchk avatar Oct 26 '24 10:10 cipchk