Public Access
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
044620ac4e | ||
|
|
e822f968cd | ||
|
|
e36c0b3355 | ||
|
|
5463e527eb | ||
|
|
7285594f3c | ||
|
|
ab322b7d91 | ||
|
|
8a11de5b0f | ||
|
|
b7fe8f3f4e | ||
|
|
0bd1550779 | ||
|
|
1dcc135094 |
No files matched your search
@@ -1,5 +1,9 @@
|
||||
PKG_NAME := git.fernandovideira.com/FernandoJVideira/draft
|
||||
VERSION := v0.2.0
|
||||
# Taken from the git tag, so a build can never disagree with the release it was
|
||||
# cut from: exactly `v0.2.1` on that tag, `v0.2.1-3-g1a2b3c4` three commits
|
||||
# later, `dev` outside a git checkout (e.g. a source tarball). Override with
|
||||
# `make build VERSION=v1.2.3`.
|
||||
VERSION ?= $(shell git describe --tags --always 2>/dev/null || echo dev)
|
||||
GO_SOURCES := $(shell find . -name '*.go' -not -path './assets/testdata/*')
|
||||
|
||||
.PHONY: version build windows win-arm linux mac prepare-embed clean
|
||||
|
||||
Vendored
+1
-1
Submodule assets/testdata/template updated: 4143dea0b3...275c03abb9.
+40
-3
@@ -88,7 +88,7 @@ func scaffoldClientNuxt(projectDir, serviceName string) error {
|
||||
|
||||
fmt.Println("📦 Installing dependencies...")
|
||||
if err := runCommand(projectDir, "pnpm", "add", "pinia", "@pinia/nuxt",
|
||||
"@fernandojvideira/vue-ui-kit", "lucide-vue-next",
|
||||
"@fernandojvideira/vue-ui-kit", "@lucide/vue",
|
||||
); err != nil {
|
||||
return fmt.Errorf("error installing dependencies: %w", err)
|
||||
}
|
||||
@@ -128,6 +128,25 @@ func patchNuxtConfig(projectDir, serviceName string) error {
|
||||
css: ['~/assets/css/main.css'],
|
||||
vite: {
|
||||
plugins: [tailwindcss()],
|
||||
// vue-ui-kit ships raw .vue/.ts source. Left to Vite's dependency
|
||||
// pre-bundler, its index.ts gets bundled with reka-ui inlined while its
|
||||
// .vue files import reka-ui from source - two module instances, so
|
||||
// reka-ui's provide/inject contexts (Dialog, Tabs, Select...) can't find
|
||||
// each other. Excluding it keeps every import on the one reka-ui.
|
||||
optimizeDeps: {
|
||||
exclude: ['@fernandojvideira/vue-ui-kit'],
|
||||
},
|
||||
},
|
||||
hooks: {
|
||||
// /login and /signup are the two tabs of one auth card, served by the
|
||||
// same page file. A second route record (not an alias - the router
|
||||
// would treat switching between a route and its alias as a duplicate
|
||||
// navigation and drop it) lets the tab change the URL while NuxtPage
|
||||
// keeps the same component instance thanks to the page's fixed key.
|
||||
'pages:extend'(pages) {
|
||||
const login = pages.find((page) => page.path === '/login')
|
||||
if (login) pages.push({ ...login, name: 'signup', path: '/signup' })
|
||||
},
|
||||
},
|
||||
|
||||
app: {
|
||||
@@ -239,7 +258,7 @@ func scaffoldClientVue(projectDir, serviceName string) error {
|
||||
}
|
||||
|
||||
fmt.Println("📦 Installing remaining dependencies...")
|
||||
return runCommand(projectDir, "pnpm", "add", "ofetch", "@fernandojvideira/vue-ui-kit", "lucide-vue-next")
|
||||
return runCommand(projectDir, "pnpm", "add", "ofetch", "@fernandojvideira/vue-ui-kit", "@lucide/vue")
|
||||
}
|
||||
|
||||
// The library's theme brings its own tokens; --success/--warning are added on
|
||||
@@ -299,13 +318,31 @@ func patchViteConfigForTailwind(projectDir string) error {
|
||||
)
|
||||
newContent = strings.Replace(newContent, "vueDevTools(),", "vueDevTools(),\n tailwindcss(),", 1)
|
||||
|
||||
if newContent == string(content) {
|
||||
// create-vue's config ends with the resolve.alias block; hang the
|
||||
// optimizeDeps exclusion off its closing brace.
|
||||
newContent = strings.Replace(newContent,
|
||||
" '@': fileURLToPath(new URL('./src', import.meta.url)),\n },\n },\n})",
|
||||
" '@': fileURLToPath(new URL('./src', import.meta.url)),\n },\n },\n"+viteOptimizeDepsExclude+"})",
|
||||
1,
|
||||
)
|
||||
|
||||
if newContent == string(content) || !strings.Contains(newContent, "optimizeDeps") {
|
||||
return fmt.Errorf("could not find expected anchors in vite.config.ts")
|
||||
}
|
||||
|
||||
return os.WriteFile(configPath, []byte(newContent), 0644)
|
||||
}
|
||||
|
||||
// vue-ui-kit ships raw .vue/.ts source. Left to Vite's dependency pre-bundler,
|
||||
// its index.ts gets bundled with reka-ui inlined while its .vue files import
|
||||
// reka-ui from source - two module instances, so reka-ui's provide/inject
|
||||
// contexts (Dialog, Tabs, Select...) can't find each other. Excluding it keeps
|
||||
// every import on the one reka-ui.
|
||||
const viteOptimizeDepsExclude = ` optimizeDeps: {
|
||||
exclude: ['@fernandojvideira/vue-ui-kit'],
|
||||
},
|
||||
`
|
||||
|
||||
func patchTsconfigAlias(projectDir string) error {
|
||||
configPath := filepath.Join(projectDir, "tsconfig.json")
|
||||
content, err := os.ReadFile(configPath)
|
||||
|
||||
Reference in new issue
Block a user