create-vike 0.0.4 → 0.0.304
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.testRun.ts +118 -0
- package/boilerplate-react/.eslintrc.cjs +17 -0
- package/boilerplate-react/.test-dev.test.ts +2 -0
- package/boilerplate-react/.test-prod.test.ts +2 -0
- package/boilerplate-react/.testCiJob.json +1 -0
- package/boilerplate-react/_gitignore +2 -0
- package/boilerplate-react/package.json +27 -0
- package/boilerplate-react/pages/about/code.css +6 -0
- package/boilerplate-react/pages/about/index.page.jsx +14 -0
- package/{files/js/react → boilerplate-react}/pages/index/Counter.jsx +4 -4
- package/{files/js/react → boilerplate-react}/pages/index/index.page.jsx +3 -4
- package/boilerplate-react/renderer/Link.jsx +14 -0
- package/boilerplate-react/renderer/PageShell.css +19 -0
- package/{files/js/react/renderer/PageWrapper.jsx → boilerplate-react/renderer/PageShell.jsx} +36 -21
- package/boilerplate-react/renderer/PropTypeValues.js +3 -0
- package/boilerplate-react/renderer/_default.page.client.jsx +22 -0
- package/boilerplate-react/renderer/_default.page.server.jsx +45 -0
- package/{files/js/react → boilerplate-react}/renderer/_error.page.jsx +8 -5
- package/boilerplate-react/renderer/logo.svg +36 -0
- package/boilerplate-react/renderer/usePageContext.jsx +25 -0
- package/boilerplate-react/server/index.js +74 -0
- package/boilerplate-react/server/root.js +8 -0
- package/boilerplate-react/vite.config.js +6 -0
- package/boilerplate-react-ts/.eslintrc.cjs +19 -0
- package/boilerplate-react-ts/.test-dev.test.ts +2 -0
- package/boilerplate-react-ts/.test-prod.test.ts +2 -0
- package/boilerplate-react-ts/.testCiJob.json +1 -0
- package/boilerplate-react-ts/_gitignore +2 -0
- package/boilerplate-react-ts/package.json +36 -0
- package/boilerplate-react-ts/pages/about/code.css +6 -0
- package/boilerplate-react-ts/pages/about/index.page.tsx +14 -0
- package/{files/ts/react → boilerplate-react-ts}/pages/index/Counter.tsx +4 -4
- package/{files/ts/react → boilerplate-react-ts}/pages/index/index.page.tsx +3 -4
- package/boilerplate-react-ts/renderer/Link.tsx +9 -0
- package/{files/ts/react/renderer/PageWrapper.tsx → boilerplate-react-ts/renderer/PageShell.tsx} +22 -28
- package/boilerplate-react-ts/renderer/_default.page.client.tsx +23 -0
- package/boilerplate-react-ts/renderer/_default.page.server.tsx +46 -0
- package/{files/ts/react → boilerplate-react-ts}/renderer/_error.page.tsx +4 -6
- package/boilerplate-react-ts/renderer/types.ts +35 -0
- package/boilerplate-react-ts/renderer/usePageContext.tsx +20 -0
- package/boilerplate-react-ts/server/index.ts +74 -0
- package/boilerplate-react-ts/server/root.ts +8 -0
- package/boilerplate-react-ts/server/tsconfig.json +9 -0
- package/boilerplate-react-ts/tsconfig.json +22 -0
- package/boilerplate-react-ts/vite.config.ts +9 -0
- package/boilerplate-vue/.test-dev.test.ts +2 -0
- package/boilerplate-vue/.test-prod.test.ts +2 -0
- package/boilerplate-vue/.testCiJob.json +1 -0
- package/boilerplate-vue/_gitignore +2 -0
- package/boilerplate-vue/package.json +22 -0
- package/boilerplate-vue/pages/about/index.page.vue +13 -0
- package/boilerplate-vue/pages/index/Counter.vue +8 -0
- package/{files/js/vue → boilerplate-vue}/pages/index/index.page.vue +1 -1
- package/{files/js/vue → boilerplate-vue}/renderer/Link.vue +2 -2
- package/{files/js/vue/renderer/PageWrapper.vue → boilerplate-vue/renderer/PageShell.vue} +1 -1
- package/boilerplate-vue/renderer/_default.page.client.js +15 -0
- package/boilerplate-vue/renderer/_default.page.server.js +54 -0
- package/{files/js/vue → boilerplate-vue}/renderer/_error.page.vue +2 -2
- package/boilerplate-vue/renderer/app.js +28 -0
- package/boilerplate-vue/renderer/logo.svg +36 -0
- package/boilerplate-vue/renderer/usePageContext.js +18 -0
- package/boilerplate-vue/server/index.js +74 -0
- package/boilerplate-vue/server/root.js +8 -0
- package/boilerplate-vue/vite.config.js +6 -0
- package/boilerplate-vue-ts/.test-dev.test.ts +2 -0
- package/boilerplate-vue-ts/.test-prod.test.ts +2 -0
- package/boilerplate-vue-ts/.testCiJob.json +1 -0
- package/boilerplate-vue-ts/_gitignore +2 -0
- package/boilerplate-vue-ts/package.json +28 -0
- package/boilerplate-vue-ts/pages/about/index.page.vue +13 -0
- package/boilerplate-vue-ts/pages/index/Counter.vue +8 -0
- package/{files/ts/vue → boilerplate-vue-ts}/pages/index/index.page.vue +1 -1
- package/{files/ts/vue → boilerplate-vue-ts}/renderer/Link.vue +2 -2
- package/{files/ts/vue/renderer/PageWrapper.vue → boilerplate-vue-ts/renderer/PageShell.vue} +1 -1
- package/boilerplate-vue-ts/renderer/_default.page.client.ts +16 -0
- package/boilerplate-vue-ts/renderer/_default.page.server.ts +56 -0
- package/{files/ts/vue → boilerplate-vue-ts}/renderer/_error.page.vue +2 -2
- package/boilerplate-vue-ts/renderer/app.ts +29 -0
- package/boilerplate-vue-ts/renderer/logo.svg +36 -0
- package/boilerplate-vue-ts/renderer/types.ts +38 -0
- package/boilerplate-vue-ts/renderer/usePageContext.ts +21 -0
- package/boilerplate-vue-ts/server/index.ts +74 -0
- package/boilerplate-vue-ts/server/root.ts +8 -0
- package/boilerplate-vue-ts/server/tsconfig.json +9 -0
- package/boilerplate-vue-ts/tsconfig.json +21 -0
- package/boilerplate-vue-ts/vite.config.ts +9 -0
- package/boilerplate-vue-ts/vue.d.ts +4 -0
- package/index.js +222 -0
- package/package.json +13 -52
- package/README.md +0 -30
- package/create-vike.js +0 -2
- package/dist/index.js +0 -402
- package/files/js/react/pages/about/index.page.jsx +0 -13
- package/files/js/react/renderer/Link.jsx +0 -15
- package/files/js/react/renderer/_default.page.client.jsx +0 -19
- package/files/js/react/renderer/_default.page.server.jsx +0 -47
- package/files/js/react/renderer/usePageContext.jsx +0 -18
- package/files/js/react+client-router/renderer/_default.page.client.jsx +0 -43
- package/files/js/react+client-router/renderer/types.js +0 -1
- package/files/js/vike/server/index.js +0 -40
- package/files/js/vue/pages/about/index.page.vue +0 -11
- package/files/js/vue/pages/index/Counter.vue +0 -10
- package/files/js/vue/renderer/_default.page.client.js +0 -12
- package/files/js/vue/renderer/_default.page.server.js +0 -41
- package/files/js/vue/renderer/app.js +0 -29
- package/files/js/vue/renderer/usePageContext.js +0 -18
- package/files/js/vue+client-router/renderer/_default.page.client.js +0 -23
- package/files/js/vue+client-router/renderer/app.js +0 -36
- package/files/js/vue+client-router/renderer/types.js +0 -1
- package/files/shared/.prettierrc +0 -1
- package/files/shared/react/pages/about/index.css +0 -4
- package/files/shared/vike/_gitignore +0 -121
- package/files/ts/react/pages/about/index.page.tsx +0 -13
- package/files/ts/react/renderer/Link.tsx +0 -19
- package/files/ts/react/renderer/_default.page.client.tsx +0 -21
- package/files/ts/react/renderer/_default.page.server.tsx +0 -49
- package/files/ts/react/renderer/types.ts +0 -11
- package/files/ts/react/renderer/usePageContext.tsx +0 -25
- package/files/ts/react+client-router/renderer/_default.page.client.tsx +0 -44
- package/files/ts/react+client-router/renderer/types.ts +0 -12
- package/files/ts/vike/server/index.ts +0 -40
- package/files/ts/vue/pages/about/index.page.vue +0 -11
- package/files/ts/vue/pages/index/Counter.vue +0 -10
- package/files/ts/vue/renderer/_default.page.client.ts +0 -14
- package/files/ts/vue/renderer/_default.page.server.ts +0 -43
- package/files/ts/vue/renderer/app.ts +0 -30
- package/files/ts/vue/renderer/types.ts +0 -10
- package/files/ts/vue/renderer/usePageContext.ts +0 -20
- package/files/ts/vue/vue.d.ts +0 -4
- package/files/ts/vue+client-router/renderer/_default.page.client.ts +0 -24
- package/files/ts/vue+client-router/renderer/app.ts +0 -37
- package/files/ts/vue+client-router/renderer/types.ts +0 -11
- /package/{files/shared/react/renderer/PageWrapper.css → boilerplate-react-ts/renderer/PageShell.css} +0 -0
- /package/{files/shared/vike → boilerplate-react-ts}/renderer/logo.svg +0 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { root }
|
|
2
|
+
|
|
3
|
+
// https://stackoverflow.com/questions/46745014/alternative-for-dirname-in-node-when-using-the-experimental-modules-flag/50052194#50052194
|
|
4
|
+
|
|
5
|
+
import { dirname } from 'path'
|
|
6
|
+
import { fileURLToPath } from 'url'
|
|
7
|
+
const __dirname = dirname(fileURLToPath(import.meta.url))
|
|
8
|
+
const root = `${__dirname}/..`
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "../tsconfig.json",
|
|
3
|
+
// Make IDEs complain about missing file extension .js in import paths.
|
|
4
|
+
// Alternatively, we could always set "module" to "Node16" and add the file extension .js to import paths everywhere.
|
|
5
|
+
"compilerOptions": {
|
|
6
|
+
"module": "Node16",
|
|
7
|
+
"moduleResolution": "Node16"
|
|
8
|
+
}
|
|
9
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"strict": true,
|
|
4
|
+
"module": "ES2020",
|
|
5
|
+
"target": "ES2020",
|
|
6
|
+
// Doesn't apply to server/, see ts-node config down below and server/tsconfig.json
|
|
7
|
+
"moduleResolution": "Bundler",
|
|
8
|
+
"lib": ["DOM", "DOM.Iterable", "ESNext"],
|
|
9
|
+
"types": ["vite/client"],
|
|
10
|
+
"skipLibCheck": true,
|
|
11
|
+
"esModuleInterop": true
|
|
12
|
+
},
|
|
13
|
+
"ts-node": {
|
|
14
|
+
"transpileOnly": true,
|
|
15
|
+
"esm": true,
|
|
16
|
+
"compilerOptions": {
|
|
17
|
+
"module": "Node16",
|
|
18
|
+
"moduleResolution": "Node16"
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
package/index.js
ADDED
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// @ts-check
|
|
4
|
+
const fs = require('fs')
|
|
5
|
+
const path = require('path')
|
|
6
|
+
const argv = require('minimist')(process.argv.slice(2))
|
|
7
|
+
const { prompt } = require('enquirer')
|
|
8
|
+
const { green, cyan, bold } = require('picocolors')
|
|
9
|
+
const { execSync } = require('child_process')
|
|
10
|
+
|
|
11
|
+
const BOILERPLATES = [
|
|
12
|
+
{
|
|
13
|
+
name: 'vue',
|
|
14
|
+
color: green
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
name: 'vue-ts',
|
|
18
|
+
color: green
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
name: 'react',
|
|
22
|
+
color: cyan
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
name: 'react-ts',
|
|
26
|
+
color: cyan
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
const IGNORE_FILES = ['.prettierrc', '.test-dev.test.ts', '.test-prod.test.ts', '.testCiJob.json']
|
|
30
|
+
//const IGNORE_PACKAGE_JSON = ['name', 'version', '// Needed for Yarn workspaces']
|
|
31
|
+
const IGNORE_PACKAGE_JSON = []
|
|
32
|
+
const RENAME_FILES = {
|
|
33
|
+
_gitignore: '.gitignore'
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const cwd = process.cwd()
|
|
37
|
+
|
|
38
|
+
async function init() {
|
|
39
|
+
let targetDir = argv._[0]
|
|
40
|
+
if (!targetDir) {
|
|
41
|
+
/**
|
|
42
|
+
* @type {{ name: string }}
|
|
43
|
+
*/
|
|
44
|
+
const { name } = await prompt({
|
|
45
|
+
type: 'input',
|
|
46
|
+
name: 'name',
|
|
47
|
+
message: `Project name:`,
|
|
48
|
+
initial: 'vite-ssr-project'
|
|
49
|
+
})
|
|
50
|
+
targetDir = name
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const root = path.join(cwd, targetDir)
|
|
54
|
+
console.log(`\nScaffolding project in ${root}...`)
|
|
55
|
+
|
|
56
|
+
if (!fs.existsSync(root)) {
|
|
57
|
+
fs.mkdirSync(root, { recursive: true })
|
|
58
|
+
} else {
|
|
59
|
+
const existing = fs.readdirSync(root)
|
|
60
|
+
if (existing.length) {
|
|
61
|
+
/**
|
|
62
|
+
* @type {{ yes: boolean }}
|
|
63
|
+
*/
|
|
64
|
+
const { yes } = await prompt({
|
|
65
|
+
type: 'confirm',
|
|
66
|
+
name: 'yes',
|
|
67
|
+
initial: 'Y',
|
|
68
|
+
message: `Target directory ${targetDir} is not empty.\n` + `Remove existing files and continue?`
|
|
69
|
+
})
|
|
70
|
+
if (yes) {
|
|
71
|
+
emptyDir(root)
|
|
72
|
+
} else {
|
|
73
|
+
return
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// determine boilerplate
|
|
79
|
+
let boilerplate = argv.t || argv.boilerplate
|
|
80
|
+
let message = 'Select a boilerplate:'
|
|
81
|
+
let isValidBoilerplate = false
|
|
82
|
+
|
|
83
|
+
// --boilerplate expects a value
|
|
84
|
+
if (typeof boilerplate === 'string') {
|
|
85
|
+
const availableBoilerplates = BOILERPLATES.map((b) => b.name)
|
|
86
|
+
isValidBoilerplate = availableBoilerplates.includes(boilerplate)
|
|
87
|
+
message = `${boilerplate} isn't a valid boilerplate. Please choose from below:`
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
if (!boilerplate || !isValidBoilerplate) {
|
|
91
|
+
/**
|
|
92
|
+
* @type {{ t: string }}
|
|
93
|
+
*/
|
|
94
|
+
const { t } = await prompt({
|
|
95
|
+
type: 'select',
|
|
96
|
+
name: 't',
|
|
97
|
+
message,
|
|
98
|
+
choices: BOILERPLATES.map((b) => ({
|
|
99
|
+
message: b.color(b.name),
|
|
100
|
+
name: b.name
|
|
101
|
+
}))
|
|
102
|
+
})
|
|
103
|
+
boilerplate = t
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
const boilerplateDir = path.join(__dirname, `boilerplate-${boilerplate}`)
|
|
107
|
+
|
|
108
|
+
const write = (file) => {
|
|
109
|
+
const targetPath = RENAME_FILES[file] ? path.join(root, RENAME_FILES[file]) : path.join(root, file)
|
|
110
|
+
if (file === 'package.json') {
|
|
111
|
+
let content = JSON.parse(fs.readFileSync(path.join(boilerplateDir, file)).toString())
|
|
112
|
+
IGNORE_PACKAGE_JSON.forEach((key) => {
|
|
113
|
+
delete content[key]
|
|
114
|
+
})
|
|
115
|
+
content = JSON.stringify(content, null, 2)
|
|
116
|
+
fs.writeFileSync(targetPath, content + '\n')
|
|
117
|
+
} else {
|
|
118
|
+
copy(path.join(boilerplateDir, file), targetPath)
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
const files = fs.readdirSync(boilerplateDir)
|
|
123
|
+
for (const file of files.filter((f) => !IGNORE_FILES.includes(f))) {
|
|
124
|
+
write(file)
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
if (!argv['skip-git']) {
|
|
128
|
+
initGitRepo(root)
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
console.log(`\nDone. Now run:\n`)
|
|
132
|
+
if (root !== cwd) {
|
|
133
|
+
console.log(cmd(` cd ${path.relative(cwd, root)}/`))
|
|
134
|
+
}
|
|
135
|
+
console.log(` ${cmd('npm install')} (or ${cmd('pnpm install')} / ${cmd('yarn install')})`)
|
|
136
|
+
console.log(` ${cmd('npm run dev')} (or ${cmd('pnpm run dev')} / ${cmd('yarn dev')})`)
|
|
137
|
+
console.log()
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
function cmd(str) {
|
|
141
|
+
return bold(str)
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
function copy(src, dest) {
|
|
145
|
+
const stat = fs.statSync(src)
|
|
146
|
+
if (stat.isDirectory()) {
|
|
147
|
+
copyDir(src, dest)
|
|
148
|
+
} else {
|
|
149
|
+
fs.copyFileSync(src, dest)
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
function copyDir(srcDir, destDir) {
|
|
154
|
+
fs.mkdirSync(destDir, { recursive: true })
|
|
155
|
+
for (const file of fs.readdirSync(srcDir)) {
|
|
156
|
+
const srcFile = path.resolve(srcDir, file)
|
|
157
|
+
const destFile = path.resolve(destDir, file)
|
|
158
|
+
copy(srcFile, destFile)
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
function emptyDir(dir) {
|
|
163
|
+
if (!fs.existsSync(dir)) {
|
|
164
|
+
return
|
|
165
|
+
}
|
|
166
|
+
for (const file of fs.readdirSync(dir)) {
|
|
167
|
+
const abs = path.resolve(dir, file)
|
|
168
|
+
// baseline is Node 12 so can't use rmSync :(
|
|
169
|
+
if (fs.lstatSync(abs).isDirectory()) {
|
|
170
|
+
emptyDir(abs)
|
|
171
|
+
fs.rmdirSync(abs)
|
|
172
|
+
} else {
|
|
173
|
+
fs.unlinkSync(abs)
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
function initGitRepo(cwd) {
|
|
179
|
+
if (!isGitInstalled()) {
|
|
180
|
+
return
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
try {
|
|
184
|
+
execSync('git init', {
|
|
185
|
+
cwd,
|
|
186
|
+
// See https://github.com/vikejs/vike/issues/478
|
|
187
|
+
stdio: 'ignore'
|
|
188
|
+
})
|
|
189
|
+
|
|
190
|
+
execSync('git add .', { cwd, stdio: 'ignore' })
|
|
191
|
+
execSync(
|
|
192
|
+
[
|
|
193
|
+
'git',
|
|
194
|
+
'-c user.name="Romuald Brillout"',
|
|
195
|
+
'-c user.email="vike@brillout.com"',
|
|
196
|
+
'commit',
|
|
197
|
+
'--no-gpg-sign',
|
|
198
|
+
'--message="Scaffold Vike app"'
|
|
199
|
+
].join(' '),
|
|
200
|
+
{ cwd, stdio: 'ignore' }
|
|
201
|
+
)
|
|
202
|
+
} catch {
|
|
203
|
+
try {
|
|
204
|
+
fs.rmSync(path.join(cwd, '.git'), { recursive: true, force: true })
|
|
205
|
+
} catch {}
|
|
206
|
+
console.warn('Could not initialize a git repository.')
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
function isGitInstalled() {
|
|
211
|
+
let stdout
|
|
212
|
+
try {
|
|
213
|
+
stdout = execSync('git --version')
|
|
214
|
+
} catch (err) {
|
|
215
|
+
return false
|
|
216
|
+
}
|
|
217
|
+
return !!stdout
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
init().catch((e) => {
|
|
221
|
+
console.error(e)
|
|
222
|
+
})
|
package/package.json
CHANGED
|
@@ -1,57 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-vike",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
7
|
-
"files": [
|
|
8
|
-
"dist/**/*",
|
|
9
|
-
"files/**/*"
|
|
10
|
-
],
|
|
11
|
-
"dependencies": {
|
|
12
|
-
"commander": "^9.3.0",
|
|
13
|
-
"prettier": "^2.6.2",
|
|
14
|
-
"walk": "^2.3.15"
|
|
15
|
-
},
|
|
16
|
-
"devDependencies": {
|
|
17
|
-
"@types/jest": "^27.5.1",
|
|
18
|
-
"@types/node": "^17.0.36",
|
|
19
|
-
"@types/rimraf": "^3.0.2",
|
|
20
|
-
"@types/walk": "^2.3.1",
|
|
21
|
-
"@typescript-eslint/eslint-plugin": "^5.27.0",
|
|
22
|
-
"@typescript-eslint/parser": "^5.27.0",
|
|
23
|
-
"chalk": "^5.0.1",
|
|
24
|
-
"detype": "^0.5.0",
|
|
25
|
-
"esbuild": "^0.14.42",
|
|
26
|
-
"esbuild-jest": "^0.5.0",
|
|
27
|
-
"esbuild-node-externals": "^1.4.1",
|
|
28
|
-
"eslint": "^8.16.0",
|
|
29
|
-
"eslint-config-prettier": "^8.5.0",
|
|
30
|
-
"eslint-import-resolver-typescript": "^2.7.1",
|
|
31
|
-
"eslint-plugin-import": "^2.26.0",
|
|
32
|
-
"eslint-plugin-no-only-tests": "^2.6.0",
|
|
33
|
-
"eslint-plugin-only-warn": "^1.0.3",
|
|
34
|
-
"eslint-plugin-ssr-friendly": "^1.0.6",
|
|
35
|
-
"fast-glob": "^3.2.11",
|
|
36
|
-
"jest": "^28.1.0",
|
|
37
|
-
"npm-run-all": "^4.1.5",
|
|
38
|
-
"rimraf": "^3.0.2",
|
|
39
|
-
"semver": "^7.3.7",
|
|
40
|
-
"typescript": "^4.7.2"
|
|
3
|
+
"version": "0.0.304",
|
|
4
|
+
"license": "MIT",
|
|
5
|
+
"bin": {
|
|
6
|
+
"create-vike": "index.js"
|
|
41
7
|
},
|
|
42
|
-
"
|
|
43
|
-
|
|
44
|
-
"
|
|
8
|
+
"main": "index.js",
|
|
9
|
+
"engines": {
|
|
10
|
+
"node": ">=12.0.0"
|
|
45
11
|
},
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"test": "run-p 'test:*'",
|
|
52
|
-
"test:unit": "jest --passWithNoTests",
|
|
53
|
-
"test:typecheck": "tsc -p tsconfig.json --noEmit",
|
|
54
|
-
"test:lint": "eslint src --max-warnings 0",
|
|
55
|
-
"format": "prettier . --write"
|
|
12
|
+
"repository": "https://github.com/vikejs/vike",
|
|
13
|
+
"dependencies": {
|
|
14
|
+
"enquirer": "^2.3.6",
|
|
15
|
+
"minimist": "^1.2.6",
|
|
16
|
+
"picocolors": "^1.0.0"
|
|
56
17
|
}
|
|
57
|
-
}
|
|
18
|
+
}
|
package/README.md
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
# Vike Project Generator
|
|
2
|
-
|
|
3
|
-
Generates Vike application boilerplate
|
|
4
|
-
|
|
5
|
-
## Usage
|
|
6
|
-
```
|
|
7
|
-
create-vike [options] <output-dir>
|
|
8
|
-
|
|
9
|
-
Arguments:
|
|
10
|
-
output-dir Output directory
|
|
11
|
-
|
|
12
|
-
Options:
|
|
13
|
-
-V, --version output the version number
|
|
14
|
-
-f, --framework <framework> Frontend framework (choices: "react", "vue")
|
|
15
|
-
-l, --language <language> Programming language (choices: "js", "ts")
|
|
16
|
-
-h, --help display help for command
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## How it works
|
|
20
|
-
- Generates TypeScript and JavaScript files from the templates in `input-files` via `detype`.
|
|
21
|
-
- Copies files from `files/<language>/<feature>` where:
|
|
22
|
-
- `<language>` is `shared`, `ts`, or `js`
|
|
23
|
-
- `<feature>` is any combination of `vike` (default), `react`, `vue`, and `client-router` combined with a plus sign
|
|
24
|
-
- Configuration files (`package.json`, `tsconfig.json`, and `vite.config.{js,ts}`) are generated programmatically.
|
|
25
|
-
- Boilerplate package versions are kept in `src/config-generators/package-versions.json`, `check-deps.mjs` can be used to review package updates.
|
|
26
|
-
|
|
27
|
-
## TODO
|
|
28
|
-
- Add integration tests
|
|
29
|
-
- Create an interactive frontend
|
|
30
|
-
- Resolve user's default prettier config if any and use it instead of the default
|
package/create-vike.js
DELETED