composer run dev error

composer run dev

Composer\Config::disableProcessTimeout
npx concurrently -c "#93c5fd,#c4b5fd,#fb7185,#fdba74" "php artisan serve" "php artisan queue:listen --tries=1" "php artisan pail --timeout=0" "npm run dev" --names=server,queue,logs,vite
'npx' is not recognized as an internal or external command,
operable program or batch file.
Script npx concurrently -c "#93c5fd,#c4b5fd,#fb7185,#fdba74" "php artisan serve" "php artisan queue:listen --tries=1" "php artisan pail --timeout=0" "npm run dev" --names=server,queue,logs,vite handling the dev event returned with error code 1

這個錯誤訊息的關鍵在這一段:

'npx' is not recognized as an internal or external command,
operable program or batch file.

意思是系統找不到 npx 指令,通常這表示你尚未安裝 Node.js 或是安裝後沒有把 Node.js 的執行檔加入到環境變數 PATH 中。


✅ 解決方法:

1. 確認是否安裝 Node.js

打開命令提示字元(CMD)或 PowerShell,輸入:

node -v
npm -v
npx -v
  • 如果出現錯誤表示沒安裝。
  • 如果 nodenpm 有版本,但 npx 沒有,表示環境變數可能有問題。

2. 安裝 Node.js(如果尚未安裝)

請到官方網站下載安裝程式:

🔗 Node.js 官方網站

  • 選擇 LTS 版本安裝即可(例如:v20.x LTS)
  • 勾選安裝選項時,確保選擇了 “Add to PATH”

3. 安裝完後重啟終端機(或重新登入)

然後重新輸入:

npx -v

如果正常出現版本號,就表示你可以繼續使用:
composer run dev

小提醒:你這段 composer.json 裡的 scripts 是這樣的:

"scripts": {
"dev": "npx concurrently ...",
}

如果你還沒安裝 concurrently,也可能會出錯,這時候可以執行:

npm install concurrently --save-dev

Laravel 12 + Livewire 3 專案目錄結構索引

本索引詳細說明 Laravel 12 搭配 Livewire 3 的專案目錄結構,包括各主要目錄、前後端整合、測試目錄、常用套件以及部署相關檔案的用途,方便開發者快速查閱。

Laravel 預設目錄結構

根目錄(Project Root)

包含專案入口與設定檔,例如 .env(環境變數)、composer.json(PHP 相依)、package.json(前端相依)以及 artisan 指令檔。這些都是專案初始化與執行的關鍵。

app/

應用程式核心邏輯,幾乎所有 PHP 類別都放在此目錄。預設命名空間為 App,由 Composer PSR-4 自動載入。

  • Models/:Eloquent 資料模型。
  • Http/:處理 HTTP 請求,包括:
    • Controllers/ 控制器
    • Middleware/ 中介層
    • Requests/ 表單驗證類別
  • Console/:自訂 Artisan 指令。
  • Livewire/:Livewire 3 預設元件類別位置。
  • 其他目錄:如 Events/, Jobs/, Listeners/ 依需求產生。

bootstrap/

框架啟動目錄,含 app.php(應用啟動點)與 cache/(快取檔案)。

config/

應用的所有設定檔目錄,如 app.php, database.php, fortify.php 等,建議熟讀調整。

database/

包含與資料庫操作有關的檔案:

  • migrations/:資料表版本遷移。
  • factories/:假資料產生器。
  • seeders/:資料填充。

lang/

語言檔案,支援多語系,可放 en/, zh_TW/ 等資料夾。

public/

網頁入口目錄,含 index.php。用來放置靜態資源(JS、CSS、圖片)。

  • storage/ 是指向 storage/app/public 的符號連結,用於公開檔案(需執行 php artisan storage:link)。

resources/

前端資源檔案:

  • views/:Blade 模板與 Livewire 專用視圖。
  • css/:Tailwind 或其他 CSS 原始檔。
  • js/:主 JS 檔與各類 JS 模組(含 Alpine.js 設定)。
  • lang/:應用語系檔案。

routes/

路由定義目錄:

  • web.php:Web 端點。
  • api.php:API 路由(需 artisan install:api 啟用)。
  • console.php:CLI Artisan 路由。
  • channels.php:事件廣播(需 artisan install:broadcasting 啟用)。
  • livewire.php:Livewire Page Route(選用,Jetstream 預設使用)。

storage/

系統存儲目錄:

  • app/:用戶上傳檔案。
  • framework/:快取、session、視圖編譯檔。
  • logs/:log 檔(如 laravel.log)。

tests/

測試目錄:

  • Feature/:功能整合測試。
  • Unit/:單元測試。
  • 可自建 Livewire/ 來分類 Livewire 測試。
  • 測試執行使用 php artisan test

vendor/

Composer 安裝的 PHP 套件,不建議手動修改。


Livewire 3 結構與 routes/livewire.php

app/Livewire/

Livewire 元件類別目錄,每個元件為一個 class。

resources/views/livewire/

對應元件的 Blade 視圖,命名與 class 對應。

routes/livewire.php

由 Jetstream (Livewire 栈) 使用的內部路由檔案,包含註冊、登入、使用者設定等功能頁面,不需要自行維護。


前端整合:Vite + Alpine.js + Tailwind CSS

vite.config.js

Vite 的打包與熱更新設定檔。

tailwind.config.js

Tailwind 設定檔,定義掃描範圍、主題、plugins 等。

postcss.config.js

PostCSS 設定檔,預設包含 tailwindcss 與 autoprefixer 插件。

resources/js/

包含 app.js, bootstrap.js,初始化 JS,包括 Alpine.js 與 Axios。

resources/css/

預設 app.css 引入 Tailwind 指令。


測試與支援結構

tests/Feature/

包含 Livewire 測試,如 Livewire::test(Component::class),測試互動與 DOM。

tests/Unit/

測試單一方法或純邏輯,不依賴框架。

phpunit.xml

測試環境設定,指定 bootstrap 與測試目錄。


套件整合:Jetstream / Fortify / Sanctum

Jetstream

  • 安裝後產生 config/jetstream.php
  • 視圖在 resources/views/auth、Livewire 在 app/Actions/
  • 使用 Fortify 作為後端認證服務
  • 使用 Sanctum 提供 API Token

Fortify

  • 安裝後產生 config/fortify.php
  • 提供無 UI 的認證路由與邏輯
  • 視圖需自行註冊 loginView, registerView 等

Sanctum

  • 提供 API Token 認證
  • 安裝後有 config/sanctum.php
  • 提供 personal_access_tokens 資料表
  • 支援 SPA cookie 模式與 token 模式

部署與 CI/CD 支援

.github/workflows/

GitHub Actions 設定目錄,常見如 laravel.yml 實作 CI/CD 流程。

Dockerfile

定義 PHP 應用容器的建置流程。

docker-compose.yml

定義多容器開發環境(Laravel + MySQL + Redis 等)。

.env.production / .env.staging

多環境設定檔。


重要設定檔彙整

檔案用途簡述
.env環境變數設定
composer.jsonPHP 套件與自動載入
package.jsonJS 套件與執行腳本
vite.config.js前端資源打包與熱更新設定
tailwind.config.jsTailwind 主題與掃描設定
postcss.config.jsCSS 編譯管線(Tailwind + Prefix)
phpunit.xml測試設定
config/*.php所有應用設定

以上說明可作為你未來開發 Laravel 12 + Livewire 3 專案時的架構索引與快速參考。

AI股市分析

今天來點不同的題材-用AI當股市戰情分析師(僅供參考!)

川普關稅政策引發台股震盪(2025年4月中旬)
美國總統川普在2025年4月中旬對關稅政策的反覆消息,導致台灣股市出現劇烈波動。特別是台積電、聯發科、鴻海等台灣權值科技股的表現,隨著關稅消息時漲時跌,反映出投資人情緒緊張和市場觀望態度​。
台積電、聯發科、鴻海等個股的股價波動
4月14日(週一),受美國暫時豁免智慧型手機、個人電腦等電子產品關稅的消息激勵,台股早盤一度大漲近490點,指數衝上20,000點大關​。鴻海(2317.TW)盤中大漲,終場收高約2.97%,報NT$138.50​。廣達(2382.TW)也上揚5.8%​。聯發科(2454.TW)股價上漲約1.08%,收在NT$1,400​。市場分析指出,美國對電子產品關稅的暫緩被視為科技股的利多消息,使蘋果供應鏈相關的台廠股票普遍反彈。Wedbush證券分析師Dan Ives評論稱:「週末令人眼花撩亂的關稅消息對Apple以及其他科技類股淨屬正面,因為此舉提供了一定的彈性,讓美中談判有機會在未來幾個月內展開。」 然而,台積電(2330.TW)作為全球最大的晶圓代工廠,在當天早盤一度領漲突破NT$900,隨後因投資人對半導體關稅的疑慮湧現而由紅翻黑​。尾盤台積電重挫2.7%,收在NT$865,幾乎打回平盤以下,單是台積電的拉回即拖累台股約300點​。市場傳言川普政府即將對「晶片」課徵新關稅,令投資人信心轉趨謹慎。正如凱基期貨分析師蔡明翰所述:「投資人逢高了結持股……他們害怕川普對半導體的關稅將炸掉市場」​。由於台積電權值居冠,其走勢左右大盤,14日加權指數(TAIEX)最終小跌0.08%至19,513.09點,早盤漲幅全數回吐​。 4月15日(週二)早盤,因美股隔夜上揚,台股開高約96點​。但市場對美方關稅走向仍存疑慮,投資人保持觀望。台積電即將在週四舉行法說會,市場關注其對關稅影響的評估​。外資並未顯著增加空單部位,顯示對台股後市不致過度悲觀,但短線波動難免​。整體而言,在川普關稅消息反覆下,台股投資人情緒經歷恐慌性拋售(如4月初的一日重挫9.7%​)到消息刺激反彈(如4月10日、4月14日的強彈),走勢起伏劇烈。

投資人反應與市場評論
面對川普關稅政策多變,市場專家和投資人紛紛發表看法。台灣金管會主委黃天牧在4月12日緊急延長禁空令一週,以維持市場穩定,表示此舉「有效抑制了投機性賣壓」​。同時他也提醒,美國關稅政策短期內高度不確定,全球股市波動仍將影響台股​。事實上,台股在該週歷經過山車行情:先是傳出關稅消息時暴跌,接著川普喊停部分關稅後又強力反彈​。 市場分析人士普遍認為半導體業首當其衝。兆豐投顧副總經理黃國偉指出,美國海關的新分類將半導體從一般電子產品中區分出來,意味著晶片不再完全享受先前的豁免待遇,但至少可望避免最嚴厲的懲罰性關稅,某種程度上屬於「負面影響減緩」​。他強調,即便如此,若最終對晶片課稅,台灣半導體產業的利多空間有限,台積電股價周一的下挫已反映市場憂慮​。 對於美方可能的關稅清單調整,市場看法不一。彭博智庫經濟學家Cathy Thorbecke在X上評論,新半導體關稅將是個「糟糕的主意」,但她推測這可能無法阻止川普採取行動。相較之下,瑞銀等機構分析師則在社群媒體上提醒投資人關注川普政府內部不同聲音,例如白宮經濟顧問對談判進展樂觀的表態,以及可能出現的讓步跡象。台灣本土研究機構Digitimes副總黃逸平分析,美國將利用關稅作為談判籌碼,逼使台灣等亞洲電子企業赴美設廠強化供應鏈​。他並警告台灣須及早準備應對美方關稅威脅。 另一方面,也有樂觀聲音出現。美國科技產業分析師指出,川普週末釋出電子產品關稅豁免的消息被視為美中貿易磋商出現轉圜的跡象,有助於提振投資人信心。例如,蘋果等美國科技巨頭高度仰賴中國製造,一旦關稅緩衝,終端產品價格飆升的風險減輕。有分析稱蘋果甚至動用貨機從印度緊急調貨,以避開潛在關稅衝擊。然而,電子業高層對川普政策反覆無常頗感無奈。有台灣電子公司主管坦言,美方宣布的豁免「讓人心神不寧,不知是真有其事還是光說不練」。

關稅豁免預期與產業影響
半導體產業:雖然美國在4月初對大部分進口品徵收10%基本關稅時,半導體(以及藥品)被列為初步豁免項目​。但川普明言將對半導體另行課徵關稅,並於4月13日表示將在一週內公佈晶片關稅稅率,同時會對部分業者有所彈性​。分析師普遍預期半導體最終難逃關稅——正如兆豐證券黃介正(Alex Huang)所言:「不可能讓半導體產業被豁免,否則美方就少了談判籌碼」​。川普政府已啟動232條款調查,以國安名義審查晶片進口,強調美國不能受制於對外依賴​。台積電為減少關稅衝擊,宣布在美追加1000億美元投資興建新廠,被視為迴避關稅風險的策略​。但短期內關稅陰影仍令半導體類股承壓,14日台灣半導體類股指數下跌約1.85%​。 電子終端產品:川普政府在4月11日深夜突然宣佈暫時豁免智慧手機、電腦等電子產品,不將其納入「對等關稅」清單​。這使市場一度預期台灣電子代工與零組件廠商可逃過一劫,蘋果供應鏈個股紛紛上漲。例如,組裝iPhone的鴻海、伺服器代工的廣達和仁寶等在14日齊揚3-6%不等。然而,此豁免並非長久之計。美國商務部長Lutnick於4月13日警告,電子產品關稅豁免**「不是永久的」​。他強調美國需要手機、電腦甚至面板都在國內生產,不能再依賴東南亞供應​。川普本人也在社群平台表示,將對整個電子供應鏈展開國安調查​。因此,市場預期手機、筆電等產品可能僅是暫緩課稅**,未來仍可能重新被課關稅​。投資人對此保持戒心,電子股漲勢在4月14日午後明顯縮減​。 汽車與零組件:汽車產業原本也是川普關稅大棒的目標之一(先前對加拿大、墨西哥進口的整車及零件課徵25%關稅)。但在4月14日,川普向媒體透露考慮對汽車與汽車零件關稅給予寬限或減免,讓車廠有時間調整供應鏈​。「我在考慮一些辦法來幫助汽車公司,他們需要一點時間,因為他們要把零件產能轉移回美國本土」,川普在白宮受訪時表示​。這番話讓市場揣測,美方可能對北美以外的汽車零組件延後加徵關稅或降低稅率。受此影響,全球汽車類股本週初普遍走強,美國GM、福特股價各漲逾3-4%​。台灣汽車相關供應鏈(如電動車代工的鴻海、零組件廠商等)也有期待心理,雖4月14-15日並未出現異動劇烈的行情,但市場解讀汽車關稅議題的負面衝擊相對有限,因為川普態度稍趨緩和。 其他產業:傳統製造業如鋼鐵、石化等因國際原物料行情而各自波動,與關稅消息的聯動較小​。值得注意的是,光電面板被點名為美方關注的供應鏈環節之一​。美國可能要求將顯示器製造部分轉移境內,否則課以高關稅。台灣主要面板廠當前並未明顯反應此預期,但Digitimes分析師提醒不可掉以輕心​。另外,醫藥產業雖然在初期關稅清單中豁免,但美方已著手調查原料藥品的進口,未來或將祭出專門關稅​。對台灣藥廠而言,這方面影響相對有限,因直接出口美國比例不高。 總體而言,2025年4月14-15日間,有關川普關稅政策的傳聞與公告,引發台灣股匯市顯著震盪。投資人一方面對豁免消息報以短暫歡欣,另一方面又憂心後續細則將再度衝擊敏感產業。半導體與電子供應鏈被視為談判籌碼,短期難以永久豁免​;汽車零件等則出現可能緩課的曙光​。正如一位台灣電子業主管所言,美國關稅政策朝令夕改令人不安。展望未來,市場將密切關注美方正式關稅清單與各國協商進展,以評估台灣各產業的長遠影響。

參考資料:
CNA中央社 – 川普關稅陰霾下台股走勢報導 (2025/04/14)
Reuters – 美國電子產品關稅豁免消息對台廠蘋果供應鏈的影響 (2025/04/14)

Taiwan News – 台股衝高回落反映半導體關稅疑慮 (2025/04/15)
CNA中央社 – 分析師對投資人逢高了結與市場恐慌的評論 (2025/04/14)
Reuters – 台灣金管會延長限空令聲明 (2025/04/12)
Reuters/CNA – 美方對半導體關稅立場與分析師觀點 (2025/04/14)
CNA中央社 – 台積電百億美元擴產美國以避關稅的動向 (2025/04/14)
Al Jazeera – 川普暗示將對汽車產業關稅給予喘息的報導 (2025/04/15)
Reuters – 台灣電子業主管談關稅政策反覆的觀感 (2025/04/14)
The Guardian/Reuters – 美國基礎關稅措施中豁免半導體和藥品的細節 (2025/04/14)

Laravel 12 with livewire 3開發指南

依據 Laravel 12 官方文件 以及 Livewire 3 快速入門文件 調整後的開發標準指南,此文件旨在統一團隊在 Laravel 應用程式(含 Livewire 3 元件)上的開發風格與最佳實踐。文件中的各項規範可根據專案需求進行進一步調整與擴充。


1. 總則

  • 目標:
    • 統一程式碼撰寫風格,增進專案可讀性與維護性
    • 遵從 Laravel 12 與 Livewire 3 官方文件中的最佳實踐與建議
    • 提高團隊協作效率,降低因風格不一致而產生的錯誤與溝通成本
  • 參考文件:

2. 基本程式碼風格

2.1. 格式規範

  • PSR-12 與 Laravel 官方建議:
    • 每個 PHP 檔案以 <?php 開頭,無閉合標籤
    • 採用 4 個空白進行縮排,避免使用 Tab
    • 每行結尾不得有多餘空白,並維持統一行寬風格
  • 引號使用:
    • 根據是否需要變數解析來選擇單引號與雙引號,建議全專案內風格保持一致
  • 括號與空白:
    • 控制結構(if、foreach、while 等)應符合 PHP 與 Laravel 標準,例如控制結構與括號之間保持單一空白
    • 函式與方法定義、呼叫時內部參數列表應避免多餘空格

2.2. 文件與注釋

  • DocBlock 標註:
    • 每個類別、方法、屬性均建議撰寫 PHPDoc,明確標示參數、返回型別與可能的例外狀況
    • 針對複雜邏輯區塊,可加入區塊式注釋以提升可讀性

3. 命名慣例與目錄結構

3.1. 檔案與目錄命名

  • 目錄結構:
    • Laravel 核心程式碼放置在 app/ 目錄下,Livewire 相關元件則統一放置在 app/Http/Livewire
    • Blade 模板建議依照功能分類置於 resources/views 下,例如 resources/views/livewire
  • 檔案與類別命名:
    • 類別名稱採用 PascalCase(例如:UserControllerOrderServiceUserProfile
    • Blade 模板檔案名稱採小寫加連字符分隔(例如:user-profile.blade.php
    • 文件名稱與內容需對應,避免命名不一致

3.2. 命名細則

  • 方法與屬性:
    • 採用 camelCase(例如:getUserData()orderId
  • 常數:
    • 全部大寫,使用底線連接,例如:STATUS_ACTIVE

4. 控制器、服務與商業邏輯

4.1. 控制器實作

  • 精簡與職責單一:
    • 控制器應專注於請求處理與回傳結果,將複雜商業邏輯拆出放入 Service 或 Action 類別中
    • 採用依賴注入(Dependency Injection)以便於單元測試與維護
  • RESTful 與資源路由:
    • 儘量使用 Laravel 提供的 resource controllers 來管理 CRUD 操作
    • 使用路由群組與中介層(Middleware)統一管理權限驗證與請求前置處理

4.2. 表單驗證

  • Laravel Form Request 與 Livewire 驗證:
    • 對於複雜驗證邏輯,建議使用 Form Request 類別將驗證規則抽離至控制器之外
    • 在 Livewire 元件中,則可定義 $rules 屬性和利用 $this->validate()$this->validateOnly() 驗證更新的欄位
    • 請參考 Laravel 表單驗證Livewire 驗證指南

5. Blade 模板與前端資源

5.1. Blade 模板

  • 模板繼承與組件化:
    • 推薦使用 Blade 模板繼承機制(例如:layouts/app.blade.php)統一全站前端佈局
    • 利用 Blade Components 與 Slots 重用共用視圖片段,確保視圖邏輯簡單明瞭
    • 請參考 Laravel Blade 模板

5.2. Livewire 與前端整合

  • Livewire 標籤與資源:
    • 在主版面(layout)中引入 Livewire 必要的樣式與腳本:使用 @livewireStyles@livewireScripts 指令
    • 於 Blade 中引入 Livewire 元件時,建議採用 <livewire:component-name />@livewire('component-name') 語法
  • 資料綁定與事件:
    • 儘量運用 Livewire 提供的雙向資料綁定(例如 wire:modelwire:model.defer)與事件(例如 wire:clickwire:submit
    • 如需更複雜的前端互動,可搭配 Alpine.js(官方文件中亦有推薦做法)

6. Livewire 3 專屬標準

6.1. 元件結構與定義

  • 基本架構:
    • 每個 Livewire 元件應繼承自 Livewire\Component,並儘量使用 PHP 8 的屬性型別提示以提升程式明確性
    • 建議所有元件公開狀態僅限必須供前端綁定的屬性
  • 驗證與資料更新:
    • 在元件內定義驗證規則(例如:protected array $rules = []),並根據需要在 updated() 或具名更新方法中觸發局部驗證
    • Livewire 3 延續了自動執行元件生命週期(lifecycle hooks)與精簡狀態管理的優點,請參照 Livewire 3 快速入門 取得最新建議

Livewire 3 元件範例:

<?php

namespace App\Http\Livewire;

use Livewire\Component;

class UserProfile extends Component
{
public string $name = '';
public string $email = '';

protected array $rules = [
'name' => 'required|string|min:3',
'email' => 'required|email'
];

// 當單一屬性更新時僅驗證該屬性,Livewire 3 建議使用具名事件(例如:updatedName)
public function updatedName(): void
{
$this->validateOnly('name');
}

public function updateProfile(): void
{
$validatedData = $this->validate();
// 執行後端更新邏輯,例如儲存至資料庫
}

public function render()
{
return view('livewire.user-profile');
}
}

6.2. 元件溝通與事件處理

  • 事件發布與監聽:
    • 採用 Livewire 內建事件系統,在元件或元件與父母件之間傳遞必要事件
    • 命名規則需具意義,例如 userUpdated,確保其他團隊成員能迅速理解其用途
  • 元件拆分:
    • 若單個元件功能過於複雜,應進行拆分為多個專注於單一責任的子元件,以便維護與重用

7. 測試與品質保證

7.1. 單元測試與功能測試

  • 測試策略:
    • 使用 tests/Featuretests/Unit 目錄分別存放功能與單元測試
    • Livewire 元件建議利用官方提供的測試工具進行整合與單元測試,確保前端與後端行為一致
  • 自動化測試整合:
    • 建議將測試納入 CI/CD 流程,定期執行測試以確保程式碼品質

7.2. 靜態分析

  • 程式碼檢查工具:
    • 使用 PHP CS Fixer、PHPStan、Psalm 等工具作為開發流程的一部分,確保程式碼符合規範與沒有潛在錯誤

8. 安全性、部屬與環境設定

8.1. 安全性

  • 資料輸出與防禦:
    • 在 Blade 中預設轉譯所有輸出(使用 {{ }}),對於需要非轉譯的情形使用 {!! !!} 並謹慎處理
    • 採用 Laravel 內建的 CSRF 保護機制,確保所有表單使用 @csrf
  • 權限管理:
    • 結合 Laravel Gate 與 Policy 機制進行權限驗證,避免在控制器中寫入過多授權邏輯

8.2. 部屬與環境設定

  • 環境管理:
    • 使用 .env 檔區分開發、測試與生產環境,並妥善保護敏感資訊
    • 定期更新依賴以確保安全性與相容性

9. 版本控管與團隊協作

  • Git 分支策略:
    • 採用 Git Flow 或類似流程,清楚區分 feature、bugfix 與 release 分支
    • 提交訊息需具描述性與意義,讓團隊成員能快速理解變更內容
  • Code Review 與文件維護:
    • 定期進行程式碼審查(Code Review),並確保團隊一致遵守上述規範
    • 持續更新技術文件與內部 Wiki,以反映最新的開發趨勢與實踐