Astro 最近更新了 3.0 版本,來加到這個玩具箱裡試試看吧。
目前 NX 沒有官方支援的 Astro 擴充,雖然有社群版本的但還沒升級到 Astro 3.0 ,所以要手動設定。
安裝套件:
pnpm add -D astro @astrojs/mdx @astrojs/rss @astrojs/sitemap
到 apps 目錄下建立一個 Astro 專案。
npm create astro@latest
會出現可愛的休士頓協助安裝步驟,這邊注意不要安裝套件跟啟動 git。
然後因為是 Integrated 架構,移除 package.json 後新增 project.json 設定 NX target。
// project.json
{
"name": "ironman-astro",
"$schema": "../../node_modules/nx/schemas/project-schema.json",
"sourceRoot": "apps/ironman-astro",
"projectType": "application",
"targets": {
"build": {
"executor": "nx:run-commands",
"options": {
"commands": ["astro build"],
"cwd": "{projectRoot}",
"forwardAllArgs": false
}
},
"serve": {
"executor": "nx:run-commands",
"options": {
"commands": ["astro dev"],
"cwd": "{projectRoot}",
"forwardAllArgs": false
}
},
"preview": {
"executor": "nx:run-commands",
"options": {
"commands": ["astro preview"],
"cwd": "{projectRoot}",
"forwardAllArgs": false
}
}
}
}
另外也要更新 tsconfig 才能引入 lib 。
{
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"target": "ESNext",
"module": "ESNext",
"moduleResolution": "Bundler",
"allowImportingTsExtensions": true,
"resolveJsonModule": true,
"verbatimModuleSyntax": true,
"isolatedModules": true,
"noEmit": true,
"forceConsistentCasingInFileNames": true,
"esModuleInterop": true,
"skipLibCheck": true,
"allowJs": true
}
}
這樣就做好最低限度的設定了,之後再來延伸,可以先用 serve 看看 astro 預設畫面。
Hi 大大,我這裡最近在改公司 Nx + Monorepo 的專案,碰到一個問題,我公司是以 React + TS 為主,然後今天要設定 ESLint + Prettier,不曉得大大會怎麼做 !?
NX 生成的模板應該都有基本的設定了,是接手的專案沒設定到還是想改設定?沒設定的到的話可以生成一個模板來參考。
目前看了公司 .eslintrc.json 檔案的內容,感覺裡面有兩組規則,一個是files:["*.ts", "*.tsx"]
另一個是files:["*.js", "*.jsx"]
,偏偏我們現在都是寫 TS,故針對files:["*.js", "*.jsx"]
的 Rule 寫了一堆規則,就通通沒有作用這樣 ?
當然