iT邦幫忙

0

請問 npm與 vue 的網站設定

  • 分享至 

  • xImage

各位前輩學長好。

以前我架站主要使用兩種,IIS跟Apache httpd。其它還有Ningx, tomcat...。, 現在聽說前端程式也可以架站,像是執行 npm run serve, 就可以有 http://localhost:8080 這樣的站台可以開發使用。就像 php artisan serve。

  • 這能用在正式對外的網站嗎?還是只用於開發測試用途?
  • npm run serve 跟 php artisan serve 是否一樣?是不是其實都是使用 npm?
  • 如何讓外部電腦可以瀏覽 http://myvue.foo.com:8080

現在我在建的站,是用 vue create foldername,然後再執行 npm run serve
現在有 http://localhost:8080 這樣的站台,簡稱A電腦。然後想讓同網段的B電腦,也可以用。如何開放?

A電腦的IP: 192.168.1.10
B電腦的IP: 應該不重要,同網段。

我先修改B電腦的 hosts 檔。
192.168.1.10 myvue.foo.com

我有試著去修改 vue.config.js,好像沒效

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  host:"myvue.foo.com",
  port:8080
})

然後去改 package.json

  "scripts": {
    "serve": "vue-cli-service serve --host myvue.foo.com --port 8080",
    ...

現在A電腦自己的瀏覽器可以執行 http://myvue.foo.com:8080
但是B電腦不行。可以 ping myvue.foo.com,但是開瀏覽器會說「無法連上這個網站」

使用 Firefox ,按 F12, 一旦執行這個網址,會一直轉圈圈,然後說無法連上

檔頭

GET / undefined
Host: myvue.foo.com:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-TW,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1

Cookie

此請求不含 cookie

請求

此請求不含酬載

回應

此請求尚無回應資料
看更多先前的討論...收起先前的討論...
YC iT邦好手 1 級 ‧ 2023-03-31 15:41:02 檢舉
你需要開瀏覽器的devtool看「無法連上這個網站」原因
sieberg iT邦新手 4 級 ‧ 2023-03-31 15:52:19 檢舉
已補充在本文
froce iT邦大師 1 級 ‧ 2023-03-31 15:52:42 檢舉
完全不建議這種做法。要不然為啥叫dev server,這種作法頂多做demo用而已。

真的要的話,改webpack/vite的bind選項:
https://stackoverflow.com/questions/33272967/how-to-make-the-webpack-dev-server-run-on-port-80-and-on-0-0-0-0-to-make-it-publ
https://vitejs.dev/config/server-options.html

或是乾脆用nginx做reverse proxy導向localhost的dev server port。
YC iT邦好手 1 級 ‧ 2023-03-31 15:55:03 檢舉
另外B電腦可以打開 192.168.1.10:8080嗎?
sieberg iT邦新手 4 級 ‧ 2023-03-31 16:08:27 檢舉
To YC: A電腦改了設定之後,B電腦無法開你那個 ip 網址跟 domain網址。但是A電腦的設定若是預設,則B電腦可以開ip網址。
YC iT邦好手 1 級 ‧ 2023-03-31 16:15:08 檢舉
A電腦的設定若是預設,則B電腦也可以開http://myvue.foo.com:8080 對吧?
YC iT邦好手 1 級 ‧ 2023-03-31 16:16:29 檢舉
你直接將A電腦的 hosts 檔加上
192.168.1.10 myvue.foo.com 不就好了?
sieberg iT邦新手 4 級 ‧ 2023-03-31 16:23:28 檢舉
To YC: A電腦若是預設,則B電腦只能開ip網址,無法開domain的網址。而A電腦的hosts,我原本是設定 127.0.0.1 myvue.foo.com,改成 192.168.1.10,也無法,並且這樣連A電腦自己都無法開domain的網址。
sieberg iT邦新手 4 級 ‧ 2023-03-31 16:29:36 檢舉
我在想,是不是 vue.config.js 的設定沒寫好?
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
leechongnan
iT邦新手 5 級 ‧ 2023-03-31 16:21:59
  1. 可以用在對外網站,就forward就好
  2. 同網段如果IP能連到,代表是可以看到的,改host檔就可以了
sieberg iT邦新手 4 級 ‧ 2023-03-31 16:27:24 檢舉

本文有提到,host檔已經有改。另外您說的forward是指什麼?

0
YC
iT邦好手 1 級 ‧ 2023-04-06 13:18:57

你的問題,其實是webpack設定問題,
不知道這篇有沒有幫助,
參考

如果沒有,可以從webpack的方向尋找答案

我要發表回答

立即登入回答