專案依賴安裝
Laravel PHP Dependencies:
composer install
Vue / JavaScript Dependencies:
npm install
簡寫:
npm i
完整重新安裝
清除 PHP 與 Node.js Dependencies:
rm -rf vendor
rm -rf node_modules
composer install
npm install
如需同時重新建立前端 Production Assets:
rm -rf vendor
rm -rf node_modules
composer install
npm install
npm run build
NPM 更新
查看版本:
node -v
npm -v
更新全域 NPM:
npm install -g npm@latest
更新後確認:
npm -v
一般專案不需要每次重新安裝 Dependencies 都執行
npm install -g npm@latest。
Vite
新版 Laravel 主要使用 Vite。
開發模式:
npm run dev
Vite 會啟動 Development Server,修改 Vue、JavaScript 或 CSS 後自動更新。
Production Build:
npm run build
通常輸出到:
public/build/
Vue + Vite
安裝 Vue:
npm install vue
安裝 Vite Vue Plugin:
npm install --save-dev @vitejs/plugin-vue
常見 vite.config.js:
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
import vue from '@vitejs/plugin-vue';
export default defineConfig({
plugins: [
laravel({
input: [
'resources/css/app.css',
'resources/js/app.js',
],
refresh: true,
}),
vue(),
],
});
Vue Entry:
import { createApp } from 'vue';
const app = createApp({});
app.mount('#app');
Laravel + Vite 開發
Backend:
php artisan serve
Frontend:
npm run dev
也可分別開兩個 Terminal:
Terminal 1
php artisan serve
Terminal 2
npm run dev
新版 Laravel 專案亦可能提供:
composer run dev
用來一次啟動 Laravel 開發環境相關服務。
Production Build
Production Deployment 常見流程:
composer install --no-dev --optimize-autoloader
npm install
npm run build
php artisan optimize
若已有 package-lock.json,CI / Production Deployment 通常可使用:
npm ci
npm run build
npm install 與 npm ci
一般開發:
npm install
或:
npm i
依照 Lock File 完整安裝:
npm ci
npm ci 常用於:
- CI/CD
- Docker Build
- Production Deployment
- 需要固定 Dependency Version 的環境
清除 node_modules
Linux / macOS:
rm -rf node_modules
npm install
同時清除 Lock File:
rm -rf node_modules
rm package-lock.json
npm install
不建議沒有原因就刪除
package-lock.json,否則 Dependency Version 可能產生變化。
清除 vendor
rm -rf vendor
composer install
如果 Composer Autoload 有問題,可以先:
composer dump-autoload
通常不需要直接刪除整個 vendor。
完整 Clean Install
一般:
rm -rf vendor
rm -rf node_modules
composer install
npm install
php artisan optimize:clear
npm run build
開發模式:
rm -rf vendor
rm -rf node_modules
composer install
npm install
php artisan optimize:clear
npm run dev
Laravel Cache
修改 Laravel 設定後:
php artisan optimize:clear
或分別:
php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear
Vite Cache
如果 Vite Dependency Cache 出現問題:
rm -rf node_modules/.vite
npm run dev
如果問題仍存在:
rm -rf node_modules
npm install
npm run dev
package.json
查看可執行 Script:
npm run
新版 Laravel 常見:
{
"scripts": {
"dev": "vite",
"build": "vite build"
}
}
因此:
npm run dev
相當於:
vite
而:
npm run build
相當於:
vite build
Laravel Mix
舊版 Laravel 專案可能使用 Laravel Mix / Webpack。
通常可從專案是否存在:
webpack.mix.js
判斷。
開發 Build:
npm run dev
監聽檔案:
npm run watch
Polling:
npm run watch-poll
Production Build:
npm run production
watch-poll
舊版 Laravel Mix:
npm run watch-poll
主要用於:
- Docker
- Virtual Machine
- Vagrant
- Shared Folder
- File Change Event 無法正常觸發的環境
它會定期檢查檔案是否改變。
Laravel Mix 6 常見 Script:
{
"scripts": {
"development": "mix",
"watch": "mix watch",
"watch-poll": "mix watch -- --watch-options-poll=1000",
"hot": "mix watch --hot",
"production": "mix --production"
}
}
也可直接使用:
npx mix watch --poll
新版 Laravel + Vite 通常不需要
npm run watch-poll。
判斷 Vite 或 Mix
如果專案有:
vite.config.js
通常使用:
npm run dev
npm run build
如果專案有:
webpack.mix.js
通常使用 Laravel Mix:
npm run dev
npm run watch
npm run watch-poll
npm run production
實際仍應查看:
package.json
內的:
"scripts"
Vue Dependencies
查看已安裝 Vue:
npm list vue
查看 Vue Version:
npm list vue
查看 Vite:
npm list vite
查看 Laravel Vite Plugin:
npm list laravel-vite-plugin
查看所有頂層 Dependencies:
npm list --depth=0
更新 NPM Package
查看可更新 Package:
npm outdated
更新符合 package.json Version Range 的 Package:
npm update
安裝指定 Package:
npm install PACKAGE_NAME
安裝 Development Dependency:
npm install --save-dev PACKAGE_NAME
移除 Package:
npm uninstall PACKAGE_NAME
Vue Router
安裝:
npm install vue-router
Pinia
安裝:
npm install pinia
Axios
安裝:
npm install axios
TypeScript
安裝 TypeScript:
npm install --save-dev typescript
Vue TypeScript Checker:
npm install --save-dev vue-tsc
執行 Type Check:
npx vue-tsc --noEmit
Laravel + Vue Docker
進入 Workspace:
docker compose exec workspace bash
安裝 PHP Dependency:
docker compose exec workspace composer install
Laravel:
docker compose exec workspace php artisan optimize:clear
如果 Node.js 位於 Workspace:
docker compose exec workspace npm install
docker compose exec workspace npm run dev
Production Build:
docker compose exec workspace npm run build
Laradock
進入 Workspace:
docker compose exec workspace bash
然後:
composer install
npm install
npm run dev
Production:
composer install
npm install
npm run build
常見問題
Vue 修改後沒有更新
Vite:
npm run dev
仍有問題:
rm -rf node_modules/.vite
npm run dev
舊 Laravel Mix / Docker:
npm run watch-poll
找不到 node_modules
npm install
找不到 vendor
composer install
Composer Class 找不到
composer dump-autoload
Laravel Cache 問題
php artisan optimize:clear
Frontend Build 異常
先嘗試:
rm -rf node_modules
npm install
npm run build
完全重新安裝仍失敗
rm -rf vendor
rm -rf node_modules
composer install
npm install
php artisan optimize:clear
npm run build
常用開發流程
第一次 Clone:
composer install
npm install
cp .env.example .env
php artisan key:generate
php artisan migrate
npm run build
開始開發:
composer run dev
或分開:
php artisan serve
npm run dev
Production:
composer install --no-dev --optimize-autoloader
npm ci
npm run build
php artisan migrate --force
php artisan optimize
快速指令表
| 指令 | 用途 |
|---|---|
composer install |
安裝 Laravel PHP Dependencies |
npm install |
安裝 Node.js Dependencies |
npm i |
npm install 簡寫 |
npm ci |
依照 Lock File 重新安裝 Dependencies |
npm run dev |
啟動 Vite Development Server |
npm run build |
建立 Production Frontend Assets |
composer run dev |
啟動新版 Laravel Development Environment |
npm run watch |
Laravel Mix 持續監聽檔案 |
npm run watch-poll |
Laravel Mix Polling 模式 |
npm run production |
Laravel Mix Production Build |
npm outdated |
查看可更新 NPM Package |
npm update |
更新 NPM Package |
npm list --depth=0 |
查看已安裝主要 Package |
php artisan optimize:clear |
清除 Laravel Cache |
原有指令整理
原:
rm -rf vendor
rm -rf node_modules
composer install
npm install -g npm@latest
npm i
npm run build
建議一般改為:
rm -rf vendor
rm -rf node_modules
composer install
npm install
npm run build
因為:
npm install
與:
npm i
作用相同,不需要連續執行。
npm install -g npm@latest 也不需要放在每次專案 Dependency Installation 流程中。
舊版:
npm run watch-poll
僅在 Laravel Mix / Webpack 專案或 File Watch 無法正常運作時使用。