@lazycatcloud/lzc-cli 1.2.58 → 1.2.60
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/changelog.md +11 -0
- package/lib/app/lpk_build.js +5 -0
- package/lib/app/lpk_create_generator.js +0 -152
- package/lib/app/lpk_installer.js +9 -5
- package/lib/appstore/index.js +15 -6
- package/lib/appstore/login.js +13 -1
- package/lib/debug_bridge.js +33 -1
- package/lib/shellapi.js +0 -31
- package/package.json +1 -1
- package/template/blank/lzc-build.yml +15 -16
- package/template/blank/lzc-manifest.yml +4 -4
- package/template/_lpk/golang.manifest.yml.in +0 -16
- package/template/_lpk/lite.manifest.yml.in +0 -19
- package/template/golang/.godir +0 -1
- package/template/golang/README.md +0 -10
- package/template/golang/_gitignore +0 -2
- package/template/golang/assets/css/bootstrap-responsive.css +0 -1091
- package/template/golang/assets/css/bootstrap-responsive.min.css +0 -1073
- package/template/golang/assets/css/bootstrap.css +0 -6264
- package/template/golang/assets/css/bootstrap.min.css +0 -5307
- package/template/golang/assets/css/rego.css +0 -45
- package/template/golang/assets/img/glyphicons-halflings-white.png +0 -0
- package/template/golang/assets/img/glyphicons-halflings.png +0 -0
- package/template/golang/assets/js/bootstrap.js +0 -2054
- package/template/golang/assets/js/bootstrap.min.js +0 -1241
- package/template/golang/assets/js/rego.js +0 -132
- package/template/golang/build.sh +0 -12
- package/template/golang/go.mod +0 -3
- package/template/golang/index.html +0 -269
- package/template/golang/lazycat.png +0 -0
- package/template/golang/lzc-build.yml +0 -60
- package/template/golang/rego.go +0 -82
- package/template/golang/rego_test.go +0 -13
- package/template/ionic_vue3/README.md +0 -46
- package/template/ionic_vue3/_eslintrc.cjs +0 -24
- package/template/ionic_vue3/_gitignore +0 -29
- package/template/ionic_vue3/_vscode/extensions.json +0 -6
- package/template/ionic_vue3/capacitor.config.ts +0 -10
- package/template/ionic_vue3/env.d.ts +0 -1
- package/template/ionic_vue3/index.html +0 -13
- package/template/ionic_vue3/ionic.config.json +0 -7
- package/template/ionic_vue3/lazycat.png +0 -0
- package/template/ionic_vue3/lzc-build.yml +0 -61
- package/template/ionic_vue3/package-lock.json +0 -8100
- package/template/ionic_vue3/package.json +0 -52
- package/template/ionic_vue3/postcss.config.js +0 -6
- package/template/ionic_vue3/public/favicon.ico +0 -0
- package/template/ionic_vue3/src/App.vue +0 -11
- package/template/ionic_vue3/src/assets/logo.svg +0 -1
- package/template/ionic_vue3/src/index.css +0 -3
- package/template/ionic_vue3/src/main.ts +0 -35
- package/template/ionic_vue3/src/router/index.ts +0 -15
- package/template/ionic_vue3/src/theme/variables.css +0 -231
- package/template/ionic_vue3/src/views/Home.vue +0 -38
- package/template/ionic_vue3/tailwind.config.js +0 -7
- package/template/ionic_vue3/tsconfig.json +0 -16
- package/template/ionic_vue3/tsconfig.vite-config.json +0 -8
- package/template/ionic_vue3/vite.config.ts +0 -28
- package/template/lite/_gitignore +0 -4
- package/template/lite/error_pages/502.html.tpl +0 -13
- package/template/lite/lazycat.png +0 -0
- package/template/lite/lzc-build.yml +0 -59
package/changelog.md
CHANGED
package/lib/app/lpk_build.js
CHANGED
|
@@ -305,6 +305,11 @@ export class LpkBuild {
|
|
|
305
305
|
dumpToYaml(manifest, path.join(tempDir, "manifest.yml"))
|
|
306
306
|
}
|
|
307
307
|
|
|
308
|
+
// compose.override.yml
|
|
309
|
+
if (this.options['compose_override']) {
|
|
310
|
+
dumpToYaml(this.options['override'], path.join(tempDir, "compose.override.yml"))
|
|
311
|
+
}
|
|
312
|
+
|
|
308
313
|
// 打包 lpk
|
|
309
314
|
if (this.beforeDumpLpkFn.length > 0) {
|
|
310
315
|
await this.beforeDumpLpkFn.reduce(async (prev, curr) => {
|
|
@@ -55,81 +55,6 @@ export async function generate(type, to, opts = {}) {
|
|
|
55
55
|
writeFileTree(to, files)
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
function appendREADME(dir) {
|
|
59
|
-
const readme = path.resolve(dir, "README.md")
|
|
60
|
-
const readmeTemplate = path.resolve(
|
|
61
|
-
__dirname,
|
|
62
|
-
"..",
|
|
63
|
-
"..",
|
|
64
|
-
"template",
|
|
65
|
-
"_lpk",
|
|
66
|
-
"README.md"
|
|
67
|
-
)
|
|
68
|
-
if (!isFileExist(readme)) {
|
|
69
|
-
fs.copyFileSync(readmeTemplate, readme)
|
|
70
|
-
} else {
|
|
71
|
-
const contentStream = fs.readFileSync(readmeTemplate, {
|
|
72
|
-
encoding: "utf-8"
|
|
73
|
-
})
|
|
74
|
-
fs.writeFileSync(readme, contentStream, { flag: "a" })
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
function vueTemplate(type) {
|
|
79
|
-
const v = type == "vue3" ? "vue@3" : "vue@2"
|
|
80
|
-
return {
|
|
81
|
-
build: async (to, option) => {
|
|
82
|
-
spawn.sync("npm", ["init", v, path.basename(to)], { stdio: "inherit" })
|
|
83
|
-
},
|
|
84
|
-
after: async function (name, cwd) {
|
|
85
|
-
spawn.sync("npm", ["install"], {
|
|
86
|
-
cwd: path.resolve(cwd, name),
|
|
87
|
-
stdio: "inherit"
|
|
88
|
-
})
|
|
89
|
-
|
|
90
|
-
const lzcBuildTemplatePath = path.resolve(
|
|
91
|
-
__dirname,
|
|
92
|
-
"..",
|
|
93
|
-
"..",
|
|
94
|
-
"template",
|
|
95
|
-
"_lpk",
|
|
96
|
-
"vue.lzc-build.yml.in"
|
|
97
|
-
)
|
|
98
|
-
logger.debug("复制", lzcBuildTemplatePath)
|
|
99
|
-
fs.copyFileSync(lzcBuildTemplatePath, path.resolve(name, "lzc-build.yml"))
|
|
100
|
-
|
|
101
|
-
const iconPngPath = path.resolve(
|
|
102
|
-
__dirname,
|
|
103
|
-
"..",
|
|
104
|
-
"..",
|
|
105
|
-
"template",
|
|
106
|
-
"_lpk",
|
|
107
|
-
"lazycat.png"
|
|
108
|
-
)
|
|
109
|
-
fs.copyFileSync(iconPngPath, path.resolve(name, "lazycat.png"))
|
|
110
|
-
|
|
111
|
-
// 更改默认的端口
|
|
112
|
-
const packageJson = path.resolve(name, "package.json")
|
|
113
|
-
const pkgInfo = JSON.parse(fs.readFileSync(packageJson))
|
|
114
|
-
pkgInfo["scripts"]["dev"] = `vite --port 3000 --host`
|
|
115
|
-
fs.writeFileSync(packageJson, JSON.stringify(pkgInfo, null, " "))
|
|
116
|
-
|
|
117
|
-
appendREADME(path.resolve(cwd, name))
|
|
118
|
-
|
|
119
|
-
console.log(
|
|
120
|
-
chalk.green(
|
|
121
|
-
`
|
|
122
|
-
🚀 构建 lpk 包
|
|
123
|
-
${chalk.yellow(`lzc-cli project build -o ${name}.lpk`)}
|
|
124
|
-
⚙️ 将应用安装至设备中:
|
|
125
|
-
${chalk.yellow(`lzc-cli app install ${name}.lpk`)}
|
|
126
|
-
`.trim()
|
|
127
|
-
)
|
|
128
|
-
)
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
|
|
133
58
|
function appCreateSuccessTip(name) {
|
|
134
59
|
console.log(
|
|
135
60
|
chalk.green(
|
|
@@ -162,82 +87,5 @@ export const TemplateConfig = {
|
|
|
162
87
|
)
|
|
163
88
|
)
|
|
164
89
|
}
|
|
165
|
-
},
|
|
166
|
-
// vue3: vueTemplate("vue3"),
|
|
167
|
-
vue2: vueTemplate("vue2"),
|
|
168
|
-
lite: {
|
|
169
|
-
build: async (to, option) => {
|
|
170
|
-
await generate("lite", to, option)
|
|
171
|
-
},
|
|
172
|
-
after: async function (name, cwd) {
|
|
173
|
-
appendREADME(path.resolve(cwd, name))
|
|
174
|
-
|
|
175
|
-
console.log(
|
|
176
|
-
chalk.green(
|
|
177
|
-
`
|
|
178
|
-
✨ 懒猫云应用 ${name} 已创建:
|
|
179
|
-
${chalk.yellow(`cd ${name}`)}
|
|
180
|
-
🚀 构建 lpk 包
|
|
181
|
-
${chalk.yellow(`lzc-cli project build -o ${name}.lpk`)}
|
|
182
|
-
⚙️ 将应用安装至设备中:
|
|
183
|
-
${chalk.yellow(`lzc-cli app install ${name}.lpk`)}
|
|
184
|
-
`.trim()
|
|
185
|
-
)
|
|
186
|
-
)
|
|
187
|
-
}
|
|
188
|
-
},
|
|
189
|
-
ionic_vue3: {
|
|
190
|
-
build: async (to, option) => {
|
|
191
|
-
await generate("ionic_vue3", to, option)
|
|
192
|
-
},
|
|
193
|
-
after: async function (name, cwd) {
|
|
194
|
-
appendREADME(path.resolve(cwd, name))
|
|
195
|
-
|
|
196
|
-
console.log(chalk.green("开始安装依赖"))
|
|
197
|
-
spawn.sync("npm", ["install"], {
|
|
198
|
-
cwd: path.join(cwd, name),
|
|
199
|
-
stdio: "inherit"
|
|
200
|
-
})
|
|
201
|
-
|
|
202
|
-
console.log(
|
|
203
|
-
chalk.green(
|
|
204
|
-
`
|
|
205
|
-
✨ 懒猫云应用 ${name} 已创建:
|
|
206
|
-
${chalk.yellow(`cd ${name}`)}
|
|
207
|
-
${chalk.yellow(`npm run dev`)}
|
|
208
|
-
🚀 构建 lpk 包
|
|
209
|
-
${chalk.yellow(`lzc-cli project build -o ${name}.lpk`)}
|
|
210
|
-
⚙️ 将应用安装至设备中:
|
|
211
|
-
${chalk.yellow(`lzc-cli app install ${name}.lpk`)}
|
|
212
|
-
📄 生成android代码:
|
|
213
|
-
${chalk.yellow(`npm run build_android`)}
|
|
214
|
-
📄 生成ios代码:
|
|
215
|
-
${chalk.yellow(`npm run build_ios`)}
|
|
216
|
-
`.trim()
|
|
217
|
-
)
|
|
218
|
-
)
|
|
219
|
-
}
|
|
220
|
-
},
|
|
221
|
-
golang: {
|
|
222
|
-
build: async (to, option) => {
|
|
223
|
-
await generate("golang", to, option)
|
|
224
|
-
},
|
|
225
|
-
after: function (name, cwd) {
|
|
226
|
-
appendREADME(path.resolve(cwd, name))
|
|
227
|
-
|
|
228
|
-
console.log(
|
|
229
|
-
chalk.green(
|
|
230
|
-
`
|
|
231
|
-
✨ 懒猫云应用 ${name} 已创建:
|
|
232
|
-
${chalk.yellow(`cd ${name}`)}
|
|
233
|
-
${chalk.yellow(`go run .`)}
|
|
234
|
-
🚀 构建 lpk 包
|
|
235
|
-
${chalk.yellow(`lzc-cli project build -o ${name}.lpk`)}
|
|
236
|
-
⚙️ 将应用安装至设备中:
|
|
237
|
-
${chalk.yellow(`lzc-cli app install ${name}.lpk`)}
|
|
238
|
-
`.trim()
|
|
239
|
-
)
|
|
240
|
-
)
|
|
241
|
-
}
|
|
242
90
|
}
|
|
243
91
|
}
|
package/lib/app/lpk_installer.js
CHANGED
|
@@ -113,6 +113,8 @@ export class LpkInstaller {
|
|
|
113
113
|
})
|
|
114
114
|
}
|
|
115
115
|
logger.debug("lpk manifest", manifest)
|
|
116
|
+
} catch (err) {
|
|
117
|
+
logger.debug("parse manifest ", err)
|
|
116
118
|
} finally {
|
|
117
119
|
fs.rmSync(tempDir, { recursive: true })
|
|
118
120
|
}
|
|
@@ -120,12 +122,14 @@ export class LpkInstaller {
|
|
|
120
122
|
const bridge = new DebugBridge()
|
|
121
123
|
await bridge.init()
|
|
122
124
|
logger.info("开始安装应用")
|
|
123
|
-
await bridge.install(pkgPath, manifest["package"])
|
|
125
|
+
await bridge.install(pkgPath, manifest ? manifest["package"] : "")
|
|
124
126
|
logger.info("\n")
|
|
125
127
|
logger.info(`安装成功!`)
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
128
|
+
if (manifest) {
|
|
129
|
+
logger.info(
|
|
130
|
+
`👉 请在浏览器中访问 https://${manifest["application"]["subdomain"]}.${shellapi.boxname}.heiyu.space`
|
|
131
|
+
)
|
|
132
|
+
logger.info(`👉 并使用微服的用户名和密码登录`)
|
|
133
|
+
}
|
|
130
134
|
}
|
|
131
135
|
}
|
package/lib/appstore/index.js
CHANGED
|
@@ -3,6 +3,7 @@ import logger from "loglevel"
|
|
|
3
3
|
import { PrePublish } from "./prePublish.js"
|
|
4
4
|
import { reLogin, request } from "./login.js"
|
|
5
5
|
import fs from "node:fs"
|
|
6
|
+
import { sleep } from "../utils.js"
|
|
6
7
|
|
|
7
8
|
export function appstoreCommand(program) {
|
|
8
9
|
let subCommands = [
|
|
@@ -72,13 +73,21 @@ export function appstoreCommand(program) {
|
|
|
72
73
|
logger.info(
|
|
73
74
|
`Waiting ... ( copy ${imageName} to lazycat offical registry)`
|
|
74
75
|
)
|
|
75
|
-
|
|
76
76
|
try {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
77
|
+
for (; ;) {
|
|
78
|
+
const resp = await request(`${baseUrl}/push-image?image=${imageName}&v=2`)
|
|
79
|
+
if (resp.ok) {
|
|
80
|
+
const tag = await resp.text()
|
|
81
|
+
if (tag.length == 0) {
|
|
82
|
+
await sleep(2500)
|
|
83
|
+
continue
|
|
84
|
+
}
|
|
85
|
+
logger.info("lazycat-registry:", tag)
|
|
86
|
+
} else {
|
|
87
|
+
logger.error("error: ", await resp.text())
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
break;
|
|
82
91
|
}
|
|
83
92
|
} catch (err) {
|
|
84
93
|
console.error(err)
|
package/lib/appstore/login.js
CHANGED
|
@@ -84,11 +84,19 @@ async function interactiveLogin() {
|
|
|
84
84
|
await login(info.username, info.password)
|
|
85
85
|
} catch (e) {
|
|
86
86
|
logger.debug("login error: ", e)
|
|
87
|
-
logger.
|
|
87
|
+
logger.error("帐号或者密码错误,请重新输入!")
|
|
88
88
|
return interactiveLogin()
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
91
|
|
|
92
|
+
function tipsFirstLogin() {
|
|
93
|
+
let token = env.get("token")
|
|
94
|
+
if (!token) {
|
|
95
|
+
// 还没登录过的用户提示用户前往 https://developer.lazycat.cloud/manage 注册开发者账号
|
|
96
|
+
logger.info("请登录懒猫微服社区账号,账号注册以及开发者权限申请地址: https://developer.lazycat.cloud/manage")
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
92
100
|
export async function reLogin() {
|
|
93
101
|
let token = await isLogin()
|
|
94
102
|
if (token) {
|
|
@@ -105,6 +113,8 @@ export async function reLogin() {
|
|
|
105
113
|
logger.info(`token: ${token}`)
|
|
106
114
|
return
|
|
107
115
|
}
|
|
116
|
+
} else {
|
|
117
|
+
tipsFirstLogin()
|
|
108
118
|
}
|
|
109
119
|
await interactiveLogin()
|
|
110
120
|
}
|
|
@@ -114,6 +124,8 @@ export async function autoLogin() {
|
|
|
114
124
|
if (token) {
|
|
115
125
|
logger.debug("appstore 已经登录")
|
|
116
126
|
return
|
|
127
|
+
} else {
|
|
128
|
+
tipsFirstLogin()
|
|
117
129
|
}
|
|
118
130
|
|
|
119
131
|
logger.debug("token错误,尝试自动登录")
|
package/lib/debug_bridge.js
CHANGED
|
@@ -15,6 +15,9 @@ import {
|
|
|
15
15
|
import logger from "loglevel"
|
|
16
16
|
import commandExists from "command-exists"
|
|
17
17
|
import path from "node:path"
|
|
18
|
+
import fetch from "node-fetch"
|
|
19
|
+
|
|
20
|
+
const bannerfileContent = `˄=ᆽ=ᐟ \\`
|
|
18
21
|
|
|
19
22
|
export function sshBinary() {
|
|
20
23
|
if (isWindows) {
|
|
@@ -42,12 +45,40 @@ export class DebugBridge {
|
|
|
42
45
|
}
|
|
43
46
|
|
|
44
47
|
async init() {
|
|
48
|
+
await this.checkDevTools()
|
|
45
49
|
if (!(await this.canPublicKey())) {
|
|
46
50
|
// 如果不能 ssh public key 登录则提示授权申请,否则后面可能会出现 rsync 询问密码的问题
|
|
47
51
|
await this.sshApplyGrant()
|
|
48
52
|
}
|
|
49
53
|
}
|
|
50
54
|
|
|
55
|
+
async checkDevTools() {
|
|
56
|
+
const url = `https://dev.${this.boxname}.heiyu.space/bannerfile`
|
|
57
|
+
return new Promise((resolve, reject) => {
|
|
58
|
+
fetch(url, { redirect: "error" })
|
|
59
|
+
.then(async (res) => {
|
|
60
|
+
const content = await res.text()
|
|
61
|
+
if (res.status == 200 && content == bannerfileContent) {
|
|
62
|
+
resolve()
|
|
63
|
+
return
|
|
64
|
+
}
|
|
65
|
+
logger.warn(
|
|
66
|
+
`检测到你还没有安装 '懒猫开发者工具',请先到商店中搜索安装
|
|
67
|
+
点击直接跳转 https://appstore.${this.boxname}.heiyu.space/#/shop/detail/cloud.lazycat.developer.tools
|
|
68
|
+
点击打开应用 https://dev.${this.boxname}.heiyu.space 查看应用状态
|
|
69
|
+
`
|
|
70
|
+
)
|
|
71
|
+
reject()
|
|
72
|
+
})
|
|
73
|
+
.catch(() => {
|
|
74
|
+
logger.error(
|
|
75
|
+
`检测懒猫开发者工具失败,请检测您当前的网络或者懒猫微服客户端是否正常启动。`
|
|
76
|
+
)
|
|
77
|
+
reject()
|
|
78
|
+
})
|
|
79
|
+
})
|
|
80
|
+
}
|
|
81
|
+
|
|
51
82
|
async common(cmd, args) {
|
|
52
83
|
const resolvedIp = await resolveDomain(this.domain)
|
|
53
84
|
args = args.map((arg) => arg.replace(this.domain, resolvedIp))
|
|
@@ -73,7 +104,8 @@ export class DebugBridge {
|
|
|
73
104
|
sshBinary(),
|
|
74
105
|
[
|
|
75
106
|
...sshCmdArgs(`box@${resolvedIp}`),
|
|
76
|
-
`install --uid ${this.uid}
|
|
107
|
+
`install --uid ${this.uid}`,
|
|
108
|
+
pkgId ? `--pkgId ${pkgId}` : ""
|
|
77
109
|
],
|
|
78
110
|
{
|
|
79
111
|
shell: true,
|
package/lib/shellapi.js
CHANGED
|
@@ -11,9 +11,6 @@ import path from "node:path"
|
|
|
11
11
|
import fs from "node:fs"
|
|
12
12
|
import os from "node:os"
|
|
13
13
|
import logger from "loglevel"
|
|
14
|
-
import fetch from "node-fetch"
|
|
15
|
-
|
|
16
|
-
const bannerfileContent = `˄=ᆽ=ᐟ \\`
|
|
17
14
|
|
|
18
15
|
/**
|
|
19
16
|
* @link {https://www.npmjs.com/package/appdirs}
|
|
@@ -77,7 +74,6 @@ NOTE:在指定环境变量的模式下,有些接口依旧不能访问,为
|
|
|
77
74
|
this.metadata = md
|
|
78
75
|
this.info = await this.initBoxInfo()
|
|
79
76
|
}
|
|
80
|
-
await this.checkDevTools()
|
|
81
77
|
}
|
|
82
78
|
|
|
83
79
|
get boxname() {
|
|
@@ -140,33 +136,6 @@ NOTE:在指定环境变量的模式下,有些接口依旧不能访问,为
|
|
|
140
136
|
throw "没有默认盒子信息, 请先使用 lzc-cli box switch 设置默认的盒子信息"
|
|
141
137
|
}
|
|
142
138
|
|
|
143
|
-
async checkDevTools() {
|
|
144
|
-
const url = `https://dev.${this.info.boxname}.heiyu.space/bannerfile`
|
|
145
|
-
return new Promise((resolve, reject) => {
|
|
146
|
-
fetch(url, { redirect: "error" })
|
|
147
|
-
.then(async (res) => {
|
|
148
|
-
const content = await res.text()
|
|
149
|
-
if (res.status == 200 && content == bannerfileContent) {
|
|
150
|
-
resolve()
|
|
151
|
-
return
|
|
152
|
-
}
|
|
153
|
-
logger.warn(
|
|
154
|
-
`检测到你还没有安装 '懒猫开发者工具',请先到商店中搜索安装
|
|
155
|
-
点击直接跳转 https://appstore.${this.info.boxname}.heiyu.space/#/shop/detail/cloud.lazycat.developer.tools
|
|
156
|
-
点击打开应用 https://dev.${this.info.boxname}.heiyu.space 查看应用状态
|
|
157
|
-
`
|
|
158
|
-
)
|
|
159
|
-
reject()
|
|
160
|
-
})
|
|
161
|
-
.catch(() => {
|
|
162
|
-
logger.error(
|
|
163
|
-
`检测懒猫开发者工具失败,请检测您当前的网络或者懒猫微服客户端是否正常启动。`
|
|
164
|
-
)
|
|
165
|
-
reject()
|
|
166
|
-
})
|
|
167
|
-
})
|
|
168
|
-
}
|
|
169
|
-
|
|
170
139
|
checkEnvProxy() {
|
|
171
140
|
if (
|
|
172
141
|
process.env.HTTPS_PROXY ||
|
package/package.json
CHANGED
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
# buildscript
|
|
4
4
|
# - 可以为构建脚本的路径地址
|
|
5
5
|
# - 如果构建命令简单,也可以直接写 sh 的命令
|
|
6
|
-
buildscript:
|
|
6
|
+
# buildscript:
|
|
7
7
|
|
|
8
8
|
# manifest: 指定 lpk 包的 manifest.yml 文件路径
|
|
9
9
|
manifest: ./lzc-manifest.yml
|
|
10
10
|
|
|
11
11
|
# contentdir: 指定打包的内容,将会打包到 lpk 中
|
|
12
|
-
contentdir: ./
|
|
12
|
+
# contentdir: ./
|
|
13
13
|
|
|
14
14
|
# pkgout: lpk 包的输出路径
|
|
15
15
|
pkgout: ./
|
|
@@ -17,7 +17,6 @@ pkgout: ./
|
|
|
17
17
|
# icon 指定 lpk 包 icon 的路径路径,如果不指定将会警告
|
|
18
18
|
# icon 仅仅允许 png 后缀的文件
|
|
19
19
|
icon: ./lzc-icon.png
|
|
20
|
-
|
|
21
20
|
# devshell 自定义应用的开发容器环境
|
|
22
21
|
# - routers 指定应用容器的访问路由
|
|
23
22
|
|
|
@@ -44,16 +43,16 @@ icon: ./lzc-icon.png
|
|
|
44
43
|
# dvshell 指定开发依赖的情况
|
|
45
44
|
# 这种情况下,选用 alpine:latest 作为基础镜像,在 dependencies 中添加所需要的开发依赖即可
|
|
46
45
|
# 如果 dependencies 和 build 同时存在,将会优先使用 dependencies
|
|
47
|
-
devshell:
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
46
|
+
# devshell:
|
|
47
|
+
# routes:
|
|
48
|
+
# - /=http://127.0.0.1:3000
|
|
49
|
+
# dependencies:
|
|
50
|
+
# - nodejs
|
|
51
|
+
# - npm
|
|
52
|
+
# # setupscript 每次进入到app container后都会执行的配置脚本
|
|
53
|
+
# # - 可以为脚本的路径地址
|
|
54
|
+
# # - 如果构建命令简单,也可以直接写 sh 的命令
|
|
55
|
+
# # setupscript: export GOPROXY=https://goproxy.cn
|
|
56
|
+
# # setupscript: ./setupscript.sh
|
|
57
|
+
# setupscript: |
|
|
58
|
+
# export npm_config_registry=https://registry.npmmirror.com
|
|
@@ -2,11 +2,11 @@ lzc-sdk-version: 0.1
|
|
|
2
2
|
name: helloworld
|
|
3
3
|
package: cloud.lazycat.app.helloworld
|
|
4
4
|
version: 0.0.1
|
|
5
|
-
description:
|
|
5
|
+
description:
|
|
6
6
|
license: https://choosealicense.com/licenses/mit/
|
|
7
|
-
homepage:
|
|
8
|
-
author:
|
|
7
|
+
homepage:
|
|
8
|
+
author:
|
|
9
9
|
application:
|
|
10
10
|
subdomain: helloworld
|
|
11
11
|
routes:
|
|
12
|
-
- /=
|
|
12
|
+
- /=https://developer.lazycat.cloud/
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
lzc-sdk-version: 0.1
|
|
2
|
-
|
|
3
|
-
package: ${package} # app的唯一标识符
|
|
4
|
-
version: ${version} # app的版本
|
|
5
|
-
name: ${name} # app名称
|
|
6
|
-
description: ${description} # app描述
|
|
7
|
-
|
|
8
|
-
license: https://choosealicense.com/licenses/mit/
|
|
9
|
-
homepage: ${homepage} # 出现bug时候提交反馈的地方
|
|
10
|
-
author: ${author} # app author
|
|
11
|
-
|
|
12
|
-
#application作为一个特殊的container运行,对应的service名称为固定的`app`,其他service可以通过此名称与app进行通讯
|
|
13
|
-
application:
|
|
14
|
-
subdomain: ${subdomain} #期望的app域名
|
|
15
|
-
routes:
|
|
16
|
-
- /=exec://3000,/lzcapp/pkg/content/rego -html /lzcapp/pkg/content/index.html
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
lzc-sdk-version: 0.1
|
|
2
|
-
|
|
3
|
-
package: ${package} # app的唯一标识符
|
|
4
|
-
version: ${version} # app的版本
|
|
5
|
-
name: ${name} # app名称
|
|
6
|
-
description: ${description} # app描述
|
|
7
|
-
|
|
8
|
-
license: https://choosealicense.com/licenses/mit/
|
|
9
|
-
homepage: ${homepage} # 出现bug时候提交反馈的地方
|
|
10
|
-
author: ${author} # app author
|
|
11
|
-
|
|
12
|
-
#application作为一个特殊的container运行,对应的service名称为固定的`app`,其他service可以通过此名称与app进行通讯
|
|
13
|
-
application:
|
|
14
|
-
subdomain: ${subdomain} #期望的app域名
|
|
15
|
-
routes:
|
|
16
|
-
- /=https://lazycat.cloud
|
|
17
|
-
handlers:
|
|
18
|
-
error_page_templates:
|
|
19
|
-
502: /lzcapp/pkg/content/502.html.tpl
|
package/template/golang/.godir
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
rego
|