@farris/cli 2.2.0-beta.1 → 2.2.0-beta.2
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/bin/index.js +1 -1
- package/lib/commands/build-components.js +48 -48
- package/lib/commands/build-components.js.map +1 -1
- package/lib/commands/build-css.js +38 -38
- package/lib/commands/build-css.js.map +1 -1
- package/lib/commands/build-lib.js +25 -25
- package/lib/commands/build.js +14 -15
- package/lib/commands/build.js.map +1 -1
- package/lib/commands/create-app-options.js +73 -0
- package/lib/commands/create-app-options.js.map +1 -0
- package/lib/commands/create-app.js +85 -54
- package/lib/commands/create-app.js.map +1 -1
- package/lib/commands/dev-serve.js +18 -18
- package/lib/commands/extract-i18n.js +74 -74
- package/lib/commands/extract-i18n.js.map +1 -1
- package/lib/commands/generate/api.js +188 -0
- package/lib/commands/generate/api.js.map +1 -0
- package/lib/commands/generate/common.js +101 -0
- package/lib/commands/generate/common.js.map +1 -0
- package/lib/commands/generate/component.js +164 -0
- package/lib/commands/generate/component.js.map +1 -0
- package/lib/commands/generate/view.js +198 -0
- package/lib/commands/generate/view.js.map +1 -0
- package/lib/commands/preview-serve.js +16 -16
- package/lib/commands/workspace/add-app.js +181 -0
- package/lib/commands/workspace/add-app.js.map +1 -0
- package/lib/commands/workspace/create.js +380 -0
- package/lib/commands/workspace/create.js.map +1 -0
- package/lib/commands/workspace/inspect.js +31 -0
- package/lib/commands/workspace/inspect.js.map +1 -0
- package/lib/commands/workspace/verify.js +39 -0
- package/lib/commands/workspace/verify.js.map +1 -0
- package/lib/common/component-file-name.js +3 -3
- package/lib/common/constant.js +64 -22
- package/lib/common/constant.js.map +1 -1
- package/lib/common/generate-app.js +53 -51
- package/lib/common/generate-app.js.map +1 -1
- package/lib/common/get-dependencies.js +9 -9
- package/lib/common/get-farris-config.js +25 -25
- package/lib/common/get-farris-config.js.map +1 -1
- package/lib/common/get-version.js +6 -6
- package/lib/common/get-vite-config.js +106 -49
- package/lib/common/get-vite-config.js.map +1 -1
- package/lib/common/lib-package-exports.js +20 -20
- package/lib/common/list-lib-components.js +23 -23
- package/lib/common/list-lib-components.js.map +1 -1
- package/lib/common/output.js +95 -0
- package/lib/common/output.js.map +1 -0
- package/lib/common/project-package-name.js +5 -0
- package/lib/common/project-package-name.js.map +1 -0
- package/lib/common/safety.js +172 -0
- package/lib/common/safety.js.map +1 -0
- package/lib/common/template-manifest.js +16 -16
- package/lib/common/template-manifest.js.map +1 -1
- package/lib/common/template-renderer.js +115 -0
- package/lib/common/template-renderer.js.map +1 -0
- package/lib/common/transaction.js +84 -0
- package/lib/common/transaction.js.map +1 -0
- package/lib/common/verifier.js +151 -0
- package/lib/common/verifier.js.map +1 -0
- package/lib/config/vite-app.js +13 -13
- package/lib/config/vite-common.js +20 -20
- package/lib/config/vite-common.js.map +1 -1
- package/lib/config/vite-component.js +32 -32
- package/lib/config/vite-component.js.map +1 -1
- package/lib/config/vite-lib.js +26 -26
- package/lib/index.js +184 -87
- package/lib/index.js.map +1 -1
- package/lib/plugins/create-component-style.js +44 -44
- package/lib/plugins/create-package-json.js +48 -48
- package/lib/plugins/create-package-json.js.map +1 -1
- package/lib/plugins/dts.js +8 -8
- package/lib/plugins/html-system.js +9 -9
- package/lib/plugins/replace.js +17 -17
- package/lib/plugins/systemjs-bundle.js +15 -15
- package/lib/plugins/systemjs-bundle.js.map +1 -1
- package/package.json +12 -9
- package/templates/lib/.gitlab-ci.yml +62 -0
- package/templates/lib/README.md +1 -15
- package/templates/lib/components/button/button.spec.ts +8 -0
- package/templates/lib/index.html +12 -0
- package/templates/lib/package.json +6 -1
- package/templates/lib/src/App.vue +7 -0
- package/templates/lib/src/main.ts +4 -0
- package/templates/lib/vitest.config.ts +9 -0
- package/templates/mobile/.gitlab-ci.yml +63 -0
- package/templates/mobile/package.json +5 -1
- package/templates/mobile/project.json +4 -0
- package/templates/mobile/src/components/TheButton.spec.ts +8 -0
- package/templates/mobile/vitest.config.ts +9 -0
- package/templates/web/.gitlab-ci.yml +63 -0
- package/templates/web/package.json +5 -1
- package/templates/web/project.json +4 -0
- package/templates/web/src/components/TheButton.spec.ts +8 -0
- package/templates/web/vitest.config.ts +9 -0
- package/templates/workspace/app/farris.config.mjs +13 -0
- package/templates/workspace/app/index.html +12 -0
- package/templates/workspace/app/package.json +22 -0
- package/templates/workspace/app/src/App.tsx +11 -0
- package/templates/workspace/app/src/locales/index.ts +5 -0
- package/templates/workspace/app/src/locales/zh-CN.json +1 -0
- package/templates/workspace/app/src/main.ts +12 -0
- package/templates/workspace/app/src/router/index.ts +16 -0
- package/templates/workspace/app/src/styles/index.css +0 -0
- package/templates/workspace/app/src/styles/index.scss +0 -0
- package/templates/workspace/app/src/views/home/composables/use-home.ts +7 -0
- package/templates/workspace/app/src/views/home/home.component.tsx +15 -0
- package/templates/workspace/app/src/views/home/index.ts +4 -0
- package/templates/workspace/app/tsconfig.json +21 -0
- package/templates/workspace/root/README.md +28 -0
- package/templates/workspace/root/package.json +13 -0
- package/templates/workspace/root/pnpm-workspace.yaml +12 -0
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
import { readFileSync } from 'node:fs';
|
|
2
|
-
import { resolve } from 'node:path';
|
|
3
|
-
import { CWD } from '../common/constant.js';
|
|
4
|
-
import { listLibComponents } from '../common/list-lib-components.js';
|
|
5
|
-
import { buildLibPackageExports } from '../common/lib-package-exports.js';
|
|
6
|
-
export const createPackageJson = () => {
|
|
7
|
-
const seen = new Set();
|
|
8
|
-
return {
|
|
9
|
-
name: 'create-package-json',
|
|
10
|
-
generateBundle(outputOptions) {
|
|
11
|
-
if (outputOptions.format) {
|
|
12
|
-
seen.add(outputOptions.format === 'es' ? 'es' : outputOptions.format);
|
|
13
|
-
}
|
|
14
|
-
const pkg = JSON.parse(readFileSync(resolve(CWD, 'package.json'), 'utf-8'));
|
|
15
|
-
const result = {
|
|
16
|
-
name: '',
|
|
17
|
-
version: '',
|
|
18
|
-
private: false,
|
|
19
|
-
types: './types/index.d.ts',
|
|
20
|
-
style: './index.css'
|
|
21
|
-
};
|
|
22
|
-
if (seen.has('es')) {
|
|
23
|
-
result.module = './index.esm.js';
|
|
24
|
-
if (!seen.has('umd')) {
|
|
25
|
-
result.main = './index.esm.js';
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
if (seen.has('umd')) {
|
|
29
|
-
result.main = './index.umd.js';
|
|
30
|
-
}
|
|
31
|
-
const exclude = ['scripts', 'devDependencies', 'private'];
|
|
32
|
-
Object.keys(pkg).forEach((key) => {
|
|
33
|
-
if (exclude.includes(key)) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
result[key] = pkg[key];
|
|
37
|
-
});
|
|
38
|
-
const extra = buildLibPackageExports(listLibComponents(process.cwd()), seen);
|
|
39
|
-
result.sideEffects = extra.sideEffects;
|
|
40
|
-
result.exports = extra.exports;
|
|
41
|
-
this.emitFile({
|
|
42
|
-
type: 'asset',
|
|
43
|
-
fileName: 'package.json',
|
|
44
|
-
source: JSON.stringify(result, null, 2)
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
|
-
};
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
import { resolve } from 'node:path';
|
|
3
|
+
import { CWD } from '../common/constant.js';
|
|
4
|
+
import { listLibComponents } from '../common/list-lib-components.js';
|
|
5
|
+
import { buildLibPackageExports } from '../common/lib-package-exports.js';
|
|
6
|
+
export const createPackageJson = () => {
|
|
7
|
+
const seen = new Set();
|
|
8
|
+
return {
|
|
9
|
+
name: 'create-package-json',
|
|
10
|
+
generateBundle(outputOptions) {
|
|
11
|
+
if (outputOptions.format) {
|
|
12
|
+
seen.add(outputOptions.format === 'es' ? 'es' : outputOptions.format);
|
|
13
|
+
}
|
|
14
|
+
const pkg = JSON.parse(readFileSync(resolve(CWD, 'package.json'), 'utf-8'));
|
|
15
|
+
const result = {
|
|
16
|
+
name: '',
|
|
17
|
+
version: '',
|
|
18
|
+
private: false,
|
|
19
|
+
types: './types/index.d.ts',
|
|
20
|
+
style: './index.css'
|
|
21
|
+
};
|
|
22
|
+
if (seen.has('es')) {
|
|
23
|
+
result.module = './index.esm.js';
|
|
24
|
+
if (!seen.has('umd')) {
|
|
25
|
+
result.main = './index.esm.js';
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
if (seen.has('umd')) {
|
|
29
|
+
result.main = './index.umd.js';
|
|
30
|
+
}
|
|
31
|
+
const exclude = ['scripts', 'devDependencies', 'private'];
|
|
32
|
+
Object.keys(pkg).forEach((key) => {
|
|
33
|
+
if (exclude.includes(key)) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
result[key] = pkg[key];
|
|
37
|
+
});
|
|
38
|
+
const extra = buildLibPackageExports(listLibComponents(process.cwd()), seen);
|
|
39
|
+
result.sideEffects = extra.sideEffects;
|
|
40
|
+
result.exports = extra.exports;
|
|
41
|
+
this.emitFile({
|
|
42
|
+
type: 'asset',
|
|
43
|
+
fileName: 'package.json',
|
|
44
|
+
source: JSON.stringify(result, null, 2)
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
49
|
//# sourceMappingURL=create-package-json.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-package-json.js","sourceRoot":"","sources":["../../src/plugins/create-package-json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAE1E,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAQ,EAAE;IACzC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO;QACL,IAAI,EAAE,qBAAqB;QAC3B,cAAc,CAAC,aAAkC;YAC/C,IAAI,aAAa,CAAC,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"create-package-json.js","sourceRoot":"","sources":["../../src/plugins/create-package-json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAE1E,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAQ,EAAE;IACzC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO;QACL,IAAI,EAAE,qBAAqB;QAC3B,cAAc,CAAC,aAAkC;YAC/C,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACxE,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YAC5E,MAAM,MAAM,GAAwB;gBAClC,IAAI,EAAE,EAAE;gBACR,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,oBAAoB;gBAC3B,KAAK,EAAE,aAAa;aACrB,CAAC;YACF,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnB,MAAM,CAAC,MAAM,GAAG,gBAAgB,CAAC;gBACjC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;oBACrB,MAAM,CAAC,IAAI,GAAG,gBAAgB,CAAC;gBACjC,CAAC;YACH,CAAC;YACD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,GAAG,gBAAgB,CAAC;YACjC,CAAC;YACD,MAAM,OAAO,GAAG,CAAC,SAAS,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC;YAC1D,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC/B,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC1B,OAAO;gBACT,CAAC;gBACD,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,sBAAsB,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAC7E,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;YACvC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC;gBACZ,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,cAAc;gBACxB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;aACxC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
|
package/lib/plugins/dts.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import dts from "vite-plugin-dts";
|
|
2
|
-
export function generateTypes(entry, outDir) {
|
|
3
|
-
return dts({
|
|
4
|
-
entryRoot: entry,
|
|
5
|
-
outDir
|
|
6
|
-
});
|
|
7
|
-
}
|
|
8
|
-
;
|
|
1
|
+
import dts from "vite-plugin-dts";
|
|
2
|
+
export function generateTypes(entry, outDir) {
|
|
3
|
+
return dts({
|
|
4
|
+
entryRoot: entry,
|
|
5
|
+
outDir
|
|
6
|
+
});
|
|
7
|
+
}
|
|
8
|
+
;
|
|
9
9
|
//# sourceMappingURL=dts.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export const htmlSystemPlugin = () => {
|
|
2
|
-
return {
|
|
3
|
-
name: 'html-transform-system',
|
|
4
|
-
transformIndexHtml(html) {
|
|
5
|
-
const regexp = /<script.*type="module".*src="(.*?)"><\/script>/;
|
|
1
|
+
export const htmlSystemPlugin = () => {
|
|
2
|
+
return {
|
|
3
|
+
name: 'html-transform-system',
|
|
4
|
+
transformIndexHtml(html) {
|
|
5
|
+
const regexp = /<script.*type="module".*src="(.*?)"><\/script>/;
|
|
6
6
|
return html.replace(regexp, (str, p1) => `
|
|
7
7
|
<script src="https://cdn.bootcdn.net/ajax/libs/systemjs/6.15.1/system.js"></script>
|
|
8
|
-
<script >System.import("${p1}");</script>`);
|
|
9
|
-
}
|
|
10
|
-
};
|
|
11
|
-
};
|
|
8
|
+
<script >System.import("${p1}");</script>`);
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
12
|
//# sourceMappingURL=html-system.js.map
|
package/lib/plugins/replace.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { getPackageName } from '../common/constant.js';
|
|
2
|
-
export function replace(path) {
|
|
3
|
-
return {
|
|
4
|
-
name: 'farris-replace-path',
|
|
5
|
-
renderChunk(code, chunk) {
|
|
6
|
-
const fileNames = chunk.fileName.split('.');
|
|
7
|
-
const format = fileNames[fileNames.length - 2];
|
|
8
|
-
// const regExpress = new RegExp(/@farris\/mobile-ui-vue\/([\w-]+)/g);
|
|
9
|
-
const dynamicRegExp = new RegExp(`${getPackageName().replace(/\//g, '\\/')}\\/([\\w-]+)`, // 自动转义斜杠
|
|
10
|
-
'g');
|
|
11
|
-
return code.replace(dynamicRegExp, (match, captureGroup) => {
|
|
12
|
-
return path(format, [captureGroup]);
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
;
|
|
1
|
+
import { getPackageName } from '../common/constant.js';
|
|
2
|
+
export function replace(path) {
|
|
3
|
+
return {
|
|
4
|
+
name: 'farris-replace-path',
|
|
5
|
+
renderChunk(code, chunk) {
|
|
6
|
+
const fileNames = chunk.fileName.split('.');
|
|
7
|
+
const format = fileNames[fileNames.length - 2];
|
|
8
|
+
// const regExpress = new RegExp(/@farris\/mobile-ui-vue\/([\w-]+)/g);
|
|
9
|
+
const dynamicRegExp = new RegExp(`${getPackageName().replace(/\//g, '\\/')}\\/([\\w-]+)`, // 自动转义斜杠
|
|
10
|
+
'g');
|
|
11
|
+
return code.replace(dynamicRegExp, (match, captureGroup) => {
|
|
12
|
+
return path(format, [captureGroup]);
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
;
|
|
18
18
|
//# sourceMappingURL=replace.js.map
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
export function systemjsBundle() {
|
|
2
|
-
return {
|
|
3
|
-
name: 'systemjs-bundle',
|
|
4
|
-
outputOptions(options) {
|
|
5
|
-
if (options.format === 'systemjs') {
|
|
6
|
-
return {
|
|
7
|
-
...options,
|
|
8
|
-
name: undefined
|
|
9
|
-
};
|
|
10
|
-
}
|
|
11
|
-
return options;
|
|
12
|
-
}
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
;
|
|
1
|
+
export function systemjsBundle() {
|
|
2
|
+
return {
|
|
3
|
+
name: 'systemjs-bundle',
|
|
4
|
+
outputOptions(options) {
|
|
5
|
+
if (options.format === 'systemjs') {
|
|
6
|
+
return {
|
|
7
|
+
...options,
|
|
8
|
+
name: undefined
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
return options;
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
;
|
|
16
16
|
//# sourceMappingURL=systemjs-bundle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"systemjs-bundle.js","sourceRoot":"","sources":["../../src/plugins/systemjs-bundle.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,cAAc;IAC5B,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,aAAa,CAAC,OAAY;YACxB,IAAG,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE;
|
|
1
|
+
{"version":3,"file":"systemjs-bundle.js","sourceRoot":"","sources":["../../src/plugins/systemjs-bundle.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,cAAc;IAC5B,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,aAAa,CAAC,OAAY;YACxB,IAAG,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACjC,OAAO;oBACL,GAAG,OAAO;oBACV,IAAI,EAAE,SAAS;iBAChB,CAAC;YACJ,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC;AAAA,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@farris/cli",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "2.2.0-beta.
|
|
4
|
+
"version": "2.2.0-beta.2",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
7
7
|
"bin": {
|
|
8
8
|
"farris-cli": "./bin/index.js"
|
|
9
9
|
},
|
|
10
10
|
"engines": {
|
|
11
|
-
"node": "
|
|
11
|
+
"node": "^18.0.0 || >=20.0.0",
|
|
12
|
+
"pnpm": ">=9.0.0"
|
|
12
13
|
},
|
|
13
14
|
"scripts": {
|
|
14
15
|
"build": "rimraf ./lib && tsc",
|
|
15
|
-
"test": "vitest run"
|
|
16
|
+
"test": "vitest run --config vitest.config.ts"
|
|
16
17
|
},
|
|
17
18
|
"files": [
|
|
18
19
|
"lib",
|
|
@@ -27,18 +28,20 @@
|
|
|
27
28
|
"commander": "^9.4.0",
|
|
28
29
|
"esbuild": "^0.23.0",
|
|
29
30
|
"esbuild-sass-plugin": "^3.3.1",
|
|
31
|
+
"fs-extra": "^11.2.0",
|
|
32
|
+
"glob": "^10.4.5",
|
|
30
33
|
"inquirer": "^9.3.0",
|
|
31
34
|
"ora": "^8.0.1",
|
|
32
|
-
"typescript": "^
|
|
33
|
-
"vite": "^4.
|
|
35
|
+
"typescript": "^5.7.3",
|
|
36
|
+
"vite": "^5.4.19",
|
|
34
37
|
"vite-plugin-css-injected-by-js": "^3.5.2",
|
|
35
|
-
"vite-plugin-dts": "^3.9.1"
|
|
36
|
-
"glob": "11.0.3"
|
|
38
|
+
"vite-plugin-dts": "^3.9.1"
|
|
37
39
|
},
|
|
38
40
|
"devDependencies": {
|
|
41
|
+
"@types/fs-extra": "^11.0.4",
|
|
39
42
|
"@types/inquirer": "^9.0.7",
|
|
40
43
|
"rimraf": "^5.0.7",
|
|
41
44
|
"vitest": "^1.6.1",
|
|
42
|
-
"vue": "^3.
|
|
45
|
+
"vue": "^3.5.13"
|
|
43
46
|
}
|
|
44
|
-
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
image: node:20
|
|
2
|
+
|
|
3
|
+
variables:
|
|
4
|
+
PROJECT_ROOT: "."
|
|
5
|
+
|
|
6
|
+
stages:
|
|
7
|
+
- pre
|
|
8
|
+
- build
|
|
9
|
+
- publish
|
|
10
|
+
- publishproject
|
|
11
|
+
|
|
12
|
+
pre-job:
|
|
13
|
+
stage: pre
|
|
14
|
+
tags:
|
|
15
|
+
- environment:cloud
|
|
16
|
+
script:
|
|
17
|
+
- export commit_author=$(git log -1 --pretty=format:%an)
|
|
18
|
+
- export commit_email=$(git log -1 --pretty=format:%ce)
|
|
19
|
+
|
|
20
|
+
build-job:
|
|
21
|
+
stage: build
|
|
22
|
+
tags:
|
|
23
|
+
- environment:cloud
|
|
24
|
+
script:
|
|
25
|
+
- npm config set registry https://repos.iec.io/repository/npm-igix/
|
|
26
|
+
- npm config set _auth=$(echo -n $ARTIFACTS_REPO_USERNAME:$ARTIFACTS_REPO_PASSWORD | base64)
|
|
27
|
+
- npm i
|
|
28
|
+
- npm test
|
|
29
|
+
- npm run build
|
|
30
|
+
artifacts:
|
|
31
|
+
expire_in: '5days'
|
|
32
|
+
name: 'dist'
|
|
33
|
+
paths:
|
|
34
|
+
- $CI_PROJECT_DIR/lib
|
|
35
|
+
|
|
36
|
+
publish-one:
|
|
37
|
+
stage: publish
|
|
38
|
+
tags:
|
|
39
|
+
- environment:cloud
|
|
40
|
+
only:
|
|
41
|
+
refs:
|
|
42
|
+
- cicd
|
|
43
|
+
changes:
|
|
44
|
+
- package.json
|
|
45
|
+
script:
|
|
46
|
+
- npm config set registry https://repos.iec.io/repository/npm-igix-release/
|
|
47
|
+
- npm config set _auth=$(echo -n $ARTIFACTS_REPO_USERNAME:$ARTIFACTS_REPO_PASSWORD | base64)
|
|
48
|
+
- cd lib && npm publish
|
|
49
|
+
|
|
50
|
+
publish-project:
|
|
51
|
+
stage: publishproject
|
|
52
|
+
tags:
|
|
53
|
+
- environment:cloud
|
|
54
|
+
only:
|
|
55
|
+
refs:
|
|
56
|
+
- cicd
|
|
57
|
+
changes:
|
|
58
|
+
- project.json
|
|
59
|
+
script:
|
|
60
|
+
- npm config set registry https://repos.iec.io/repository/npm-igix-release/
|
|
61
|
+
- npm config set _auth=$(echo -n $ARTIFACTS_REPO_USERNAME:$ARTIFACTS_REPO_PASSWORD | base64)
|
|
62
|
+
- echo "skip publishproject: lib has no project.json"
|
package/templates/lib/README.md
CHANGED
|
@@ -1,17 +1,3 @@
|
|
|
1
1
|
# <%= name %>
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
- `npm run build` — `build-lib` then `build-css` (css after lib so Vite does not wipe `index.css`)
|
|
6
|
-
- `npm run changeset` — record a change
|
|
7
|
-
- `npm run version` — bump version and changelog
|
|
8
|
-
|
|
9
|
-
If the default branch is not `main`, edit `.changeset/config.json` `baseBranch`.
|
|
10
|
-
|
|
11
|
-
## Output
|
|
12
|
-
|
|
13
|
-
Artifacts go to `lib/` (`index.esm.js` / `index.umd.js` / `index.systemjs.js` depending on formats, plus `types/` and `index.css`).
|
|
14
|
-
|
|
15
|
-
## Add a component
|
|
16
|
-
|
|
17
|
-
Copy `components/button` to a new folder and re-export it from `components/index.ts`.
|
|
3
|
+
`src/` 是本地演示应用,执行 `npm run dev` 启动。发布到 npm 的组件源码在 `components/`,执行 `npm run build` 打包。
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Lib Demo</title>
|
|
7
|
+
</head>
|
|
8
|
+
<body>
|
|
9
|
+
<div id="app"></div>
|
|
10
|
+
<script type="module" src="/src/main.ts"></script>
|
|
11
|
+
</body>
|
|
12
|
+
</html>
|
|
@@ -4,7 +4,10 @@
|
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
|
+
"dev": "farris-cli dev",
|
|
7
8
|
"build": "farris-cli build-lib -ep && farris-cli build-components",
|
|
9
|
+
"test": "vitest run",
|
|
10
|
+
"test:watch": "vitest",
|
|
8
11
|
"changeset": "changeset",
|
|
9
12
|
"version": "changeset version"
|
|
10
13
|
},
|
|
@@ -15,7 +18,9 @@
|
|
|
15
18
|
"@changesets/cli": "^2.29.5",
|
|
16
19
|
"@farris/cli": "<%= cliVersion %>",
|
|
17
20
|
"@vue/tsconfig": "^0.5.1",
|
|
21
|
+
"@vitejs/plugin-vue": "^4.0.0",
|
|
18
22
|
"typescript": "~5.4.0",
|
|
19
|
-
"vue": "^3.4.29"
|
|
23
|
+
"vue": "^3.4.29",
|
|
24
|
+
"vitest": "^1.6.1"
|
|
20
25
|
}
|
|
21
26
|
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
image: node:20
|
|
2
|
+
|
|
3
|
+
variables:
|
|
4
|
+
PROJECT_ROOT: "."
|
|
5
|
+
|
|
6
|
+
stages:
|
|
7
|
+
- pre
|
|
8
|
+
- build
|
|
9
|
+
- publish
|
|
10
|
+
- publishproject
|
|
11
|
+
|
|
12
|
+
pre-job:
|
|
13
|
+
stage: pre
|
|
14
|
+
tags:
|
|
15
|
+
- environment:cloud
|
|
16
|
+
script:
|
|
17
|
+
- export commit_author=$(git log -1 --pretty=format:%an)
|
|
18
|
+
- export commit_email=$(git log -1 --pretty=format:%ce)
|
|
19
|
+
|
|
20
|
+
build-job:
|
|
21
|
+
stage: build
|
|
22
|
+
tags:
|
|
23
|
+
- environment:cloud
|
|
24
|
+
script:
|
|
25
|
+
- npm config set registry https://repos.iec.io/repository/npm-igix/
|
|
26
|
+
- npm config set _auth=$(echo -n $ARTIFACTS_REPO_USERNAME:$ARTIFACTS_REPO_PASSWORD | base64)
|
|
27
|
+
- npm i
|
|
28
|
+
- npm test
|
|
29
|
+
- npm run build
|
|
30
|
+
artifacts:
|
|
31
|
+
expire_in: '5days'
|
|
32
|
+
name: 'dist'
|
|
33
|
+
paths:
|
|
34
|
+
- $CI_PROJECT_DIR/dist
|
|
35
|
+
|
|
36
|
+
publish-one:
|
|
37
|
+
stage: publish
|
|
38
|
+
tags:
|
|
39
|
+
- environment:cloud
|
|
40
|
+
only:
|
|
41
|
+
refs:
|
|
42
|
+
- cicd
|
|
43
|
+
changes:
|
|
44
|
+
- packages/**/package.json
|
|
45
|
+
script:
|
|
46
|
+
- echo "skip publish-one: app package is private"
|
|
47
|
+
|
|
48
|
+
publish-project:
|
|
49
|
+
stage: publishproject
|
|
50
|
+
tags:
|
|
51
|
+
- environment:cloud
|
|
52
|
+
only:
|
|
53
|
+
refs:
|
|
54
|
+
- cicd
|
|
55
|
+
changes:
|
|
56
|
+
- project.json
|
|
57
|
+
script:
|
|
58
|
+
- npm config set registry https://repos.iec.io/repository/npm-igix-release/
|
|
59
|
+
- npm config set _auth=$(echo -n $ARTIFACTS_REPO_USERNAME:$ARTIFACTS_REPO_PASSWORD | base64)
|
|
60
|
+
- cp ./project.json ./dist
|
|
61
|
+
- cd ./dist
|
|
62
|
+
- mv ./project.json ./package.json
|
|
63
|
+
- npm publish
|
|
@@ -9,6 +9,8 @@
|
|
|
9
9
|
"preview": "farris-cli preview",
|
|
10
10
|
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
|
|
11
11
|
"format": "prettier --write src/",
|
|
12
|
+
"test": "vitest run",
|
|
13
|
+
"test:watch": "vitest",
|
|
12
14
|
"changeset": "changeset",
|
|
13
15
|
"version": "changeset version"
|
|
14
16
|
},
|
|
@@ -24,9 +26,11 @@
|
|
|
24
26
|
"@vue/eslint-config-prettier": "^9.0.0",
|
|
25
27
|
"@vue/eslint-config-typescript": "^13.0.0",
|
|
26
28
|
"@vue/tsconfig": "^0.5.1",
|
|
29
|
+
"@vitejs/plugin-vue": "^4.0.0",
|
|
27
30
|
"eslint": "^8.57.0",
|
|
28
31
|
"eslint-plugin-vue": "^9.23.0",
|
|
29
32
|
"prettier": "^3.2.5",
|
|
30
|
-
"typescript": "~5.4.0"
|
|
33
|
+
"typescript": "~5.4.0",
|
|
34
|
+
"vitest": "^1.6.1"
|
|
31
35
|
}
|
|
32
36
|
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
image: node:20
|
|
2
|
+
|
|
3
|
+
variables:
|
|
4
|
+
PROJECT_ROOT: "."
|
|
5
|
+
|
|
6
|
+
stages:
|
|
7
|
+
- pre
|
|
8
|
+
- build
|
|
9
|
+
- publish
|
|
10
|
+
- publishproject
|
|
11
|
+
|
|
12
|
+
pre-job:
|
|
13
|
+
stage: pre
|
|
14
|
+
tags:
|
|
15
|
+
- environment:cloud
|
|
16
|
+
script:
|
|
17
|
+
- export commit_author=$(git log -1 --pretty=format:%an)
|
|
18
|
+
- export commit_email=$(git log -1 --pretty=format:%ce)
|
|
19
|
+
|
|
20
|
+
build-job:
|
|
21
|
+
stage: build
|
|
22
|
+
tags:
|
|
23
|
+
- environment:cloud
|
|
24
|
+
script:
|
|
25
|
+
- npm config set registry https://repos.iec.io/repository/npm-igix/
|
|
26
|
+
- npm config set _auth=$(echo -n $ARTIFACTS_REPO_USERNAME:$ARTIFACTS_REPO_PASSWORD | base64)
|
|
27
|
+
- npm i
|
|
28
|
+
- npm test
|
|
29
|
+
- npm run build
|
|
30
|
+
artifacts:
|
|
31
|
+
expire_in: '5days'
|
|
32
|
+
name: 'dist'
|
|
33
|
+
paths:
|
|
34
|
+
- $CI_PROJECT_DIR/dist
|
|
35
|
+
|
|
36
|
+
publish-one:
|
|
37
|
+
stage: publish
|
|
38
|
+
tags:
|
|
39
|
+
- environment:cloud
|
|
40
|
+
only:
|
|
41
|
+
refs:
|
|
42
|
+
- cicd
|
|
43
|
+
changes:
|
|
44
|
+
- packages/**/package.json
|
|
45
|
+
script:
|
|
46
|
+
- echo "skip publish-one: app package is private"
|
|
47
|
+
|
|
48
|
+
publish-project:
|
|
49
|
+
stage: publishproject
|
|
50
|
+
tags:
|
|
51
|
+
- environment:cloud
|
|
52
|
+
only:
|
|
53
|
+
refs:
|
|
54
|
+
- cicd
|
|
55
|
+
changes:
|
|
56
|
+
- project.json
|
|
57
|
+
script:
|
|
58
|
+
- npm config set registry https://repos.iec.io/repository/npm-igix-release/
|
|
59
|
+
- npm config set _auth=$(echo -n $ARTIFACTS_REPO_USERNAME:$ARTIFACTS_REPO_PASSWORD | base64)
|
|
60
|
+
- cp ./project.json ./dist
|
|
61
|
+
- cd ./dist
|
|
62
|
+
- mv ./project.json ./package.json
|
|
63
|
+
- npm publish
|
|
@@ -9,6 +9,8 @@
|
|
|
9
9
|
"preview": "farris-cli preview",
|
|
10
10
|
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
|
|
11
11
|
"format": "prettier --write src/",
|
|
12
|
+
"test": "vitest run",
|
|
13
|
+
"test:watch": "vitest",
|
|
12
14
|
"changeset": "changeset",
|
|
13
15
|
"version": "changeset version"
|
|
14
16
|
},
|
|
@@ -24,9 +26,11 @@
|
|
|
24
26
|
"@vue/eslint-config-prettier": "^9.0.0",
|
|
25
27
|
"@vue/eslint-config-typescript": "^13.0.0",
|
|
26
28
|
"@vue/tsconfig": "^0.5.1",
|
|
29
|
+
"@vitejs/plugin-vue": "^4.0.0",
|
|
27
30
|
"eslint": "^8.57.0",
|
|
28
31
|
"eslint-plugin-vue": "^9.23.0",
|
|
29
32
|
"prettier": "^3.2.5",
|
|
30
|
-
"typescript": "~5.4.0"
|
|
33
|
+
"typescript": "~5.4.0",
|
|
34
|
+
"vitest": "^1.6.1"
|
|
31
35
|
}
|
|
32
36
|
}
|