@farris/cli 2.0.0 → 2.0.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.
Files changed (76) hide show
  1. package/bin/index.js +2 -2
  2. package/lib/commands/build-components.js +40 -0
  3. package/lib/commands/build-components.js.map +1 -0
  4. package/lib/commands/build-css.js +39 -0
  5. package/lib/commands/build-css.js.map +1 -0
  6. package/lib/commands/build-lib.js +26 -0
  7. package/lib/commands/build-lib.js.map +1 -0
  8. package/lib/commands/build.js +16 -0
  9. package/lib/commands/build.js.map +1 -0
  10. package/lib/commands/create-app.js +55 -0
  11. package/lib/commands/create-app.js.map +1 -0
  12. package/lib/commands/dev-serve.js +19 -0
  13. package/lib/commands/dev-serve.js.map +1 -0
  14. package/lib/commands/extract-i18n.js +75 -0
  15. package/lib/commands/extract-i18n.js.map +1 -0
  16. package/lib/commands/preview-serve.js +17 -0
  17. package/lib/commands/preview-serve.js.map +1 -0
  18. package/lib/common/constant.js +23 -0
  19. package/lib/common/constant.js.map +1 -0
  20. package/lib/common/generate-app.js +45 -0
  21. package/lib/common/generate-app.js.map +1 -0
  22. package/lib/common/get-dependencies.js +10 -0
  23. package/lib/common/get-dependencies.js.map +1 -0
  24. package/lib/common/get-farris-config.js +12 -0
  25. package/lib/common/get-farris-config.js.map +1 -0
  26. package/lib/common/get-version.js +7 -0
  27. package/lib/common/get-version.js.map +1 -0
  28. package/lib/common/get-vite-config.js +49 -0
  29. package/lib/common/get-vite-config.js.map +1 -0
  30. package/lib/config/vite-app.js +14 -0
  31. package/lib/config/vite-app.js.map +1 -0
  32. package/lib/config/vite-common.js +21 -0
  33. package/lib/config/vite-common.js.map +1 -0
  34. package/lib/config/vite-component.js +31 -0
  35. package/lib/config/vite-component.js.map +1 -0
  36. package/lib/config/vite-lib.js +27 -0
  37. package/lib/config/vite-lib.js.map +1 -0
  38. package/lib/index.js +84 -0
  39. package/lib/index.js.map +1 -0
  40. package/lib/plugins/create-component-style.js +46 -0
  41. package/lib/plugins/create-component-style.js.map +1 -0
  42. package/lib/plugins/create-package-json.js +34 -0
  43. package/lib/plugins/create-package-json.js.map +1 -0
  44. package/lib/plugins/dts.js +9 -0
  45. package/lib/plugins/dts.js.map +1 -0
  46. package/lib/plugins/html-system.js +12 -0
  47. package/lib/plugins/html-system.js.map +1 -0
  48. package/lib/plugins/replace.js +18 -0
  49. package/lib/plugins/replace.js.map +1 -0
  50. package/lib/plugins/systemjs-bundle.js +16 -0
  51. package/lib/plugins/systemjs-bundle.js.map +1 -0
  52. package/package.json +42 -40
  53. package/templates/mobile/.eslintrc.cjs +15 -15
  54. package/templates/mobile/.prettierrc.json +7 -7
  55. package/templates/mobile/farris.config.mjs +24 -24
  56. package/templates/mobile/index.html +12 -12
  57. package/templates/mobile/package.json +28 -28
  58. package/templates/mobile/src/App.vue +80 -80
  59. package/templates/mobile/src/components/TheButton.vue +3 -3
  60. package/templates/mobile/src/main.ts +12 -12
  61. package/templates/mobile/src/router/index.ts +23 -23
  62. package/templates/mobile/src/views/AboutView.vue +15 -15
  63. package/templates/mobile/src/views/HomeView.vue +9 -9
  64. package/templates/mobile/tsconfig.json +17 -17
  65. package/templates/web/.eslintrc.cjs +15 -15
  66. package/templates/web/.prettierrc.json +7 -7
  67. package/templates/web/farris.config.mjs +24 -24
  68. package/templates/web/index.html +12 -12
  69. package/templates/web/package.json +28 -28
  70. package/templates/web/src/App.vue +80 -80
  71. package/templates/web/src/components/TheButton.vue +3 -3
  72. package/templates/web/src/main.ts +10 -10
  73. package/templates/web/src/router/index.ts +23 -23
  74. package/templates/web/src/views/AboutView.vue +15 -15
  75. package/templates/web/src/views/HomeView.vue +9 -9
  76. package/templates/web/tsconfig.json +17 -17
@@ -0,0 +1,27 @@
1
+ import { mergeConfig } from 'vite';
2
+ import { resolve } from "node:path";
3
+ import { CWD, getPackageName } from '../common/constant.js';
4
+ import { systemjsBundle } from '../plugins/systemjs-bundle.js';
5
+ import CommonConfig from "./vite-common.js";
6
+ export default mergeConfig(CommonConfig, {
7
+ logLevel: 'silent',
8
+ plugins: [systemjsBundle()],
9
+ build: {
10
+ lib: {
11
+ entry: resolve(CWD, `./src/main.ts`),
12
+ fileName: "index",
13
+ },
14
+ target: 'es2019',
15
+ outDir: resolve(CWD, `./lib`),
16
+ rollupOptions: {
17
+ output: {
18
+ exports: "named",
19
+ globals: {
20
+ vue: "Vue",
21
+ [getPackageName()]: getPackageName()
22
+ }
23
+ }
24
+ },
25
+ }
26
+ });
27
+ //# sourceMappingURL=vite-lib.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite-lib.js","sourceRoot":"","sources":["../../src/config/vite-lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAE5C,eAAe,WAAW,CAAC,YAAY,EAAE;IACvC,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,CAAC,cAAc,EAAE,CAAC;IAC3B,KAAK,EAAC;QACJ,GAAG,EAAE;YACH,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC;YACpC,QAAQ,EAAE,OAAO;SAClB;QACD,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC;QAC7B,aAAa,EAAE;YACb,MAAM,EAAE;gBACN,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE;oBACP,GAAG,EAAE,KAAK;oBACV,CAAC,cAAc,EAAE,CAAC,EAAE,cAAc,EAAE;iBACrC;aACF;SACF;KACF;CACF,CAAC,CAAC"}
package/lib/index.js ADDED
@@ -0,0 +1,84 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from 'commander';
3
+ import { getVersion } from "./common/get-version.js";
4
+ const program = new Command();
5
+ program.version(`@farris/cli ${getVersion()}`);
6
+ program
7
+ .command('build')
8
+ .description('构建')
9
+ .option('-c --configFile [configFile]', 'config file path')
10
+ .option('-vc --viteConfigFile [viteConfigFile]', 'vite config file path')
11
+ .action(async (options) => {
12
+ process.env.BUILD_TYPE = 'app';
13
+ const { buildCommon } = await import('./commands/build.js');
14
+ buildCommon(options);
15
+ });
16
+ program
17
+ .command('build-lib')
18
+ .description('构建')
19
+ .option('-c --configFile [configFile]', 'config file path')
20
+ .option('-vc --viteConfigFile [viteConfigFile]', 'vite config file path')
21
+ .option('-f --format [format]', 'lib format')
22
+ .option('-d --dts', 'dts')
23
+ .option('-ep --emitPackage', 'createPackage')
24
+ .action(async (options) => {
25
+ process.env.BUILD_TYPE = 'lib';
26
+ const { buildLib } = await import('./commands/build-lib.js');
27
+ return buildLib(options);
28
+ });
29
+ program
30
+ .command('build-components')
31
+ .description('构建')
32
+ .option('-c --configFile [configFile]', 'config file path')
33
+ .option('-vc --viteConfigFile [viteConfigFile]', 'vite config file path')
34
+ .action(async (options) => {
35
+ process.env.BUILD_TYPE = 'components';
36
+ const { buildComponents } = await import('./commands/build-components.js');
37
+ return buildComponents(options);
38
+ });
39
+ program
40
+ .command('build-css')
41
+ .description('构建')
42
+ .option('-e --entry [entry]', 'entry file')
43
+ .option('-o --outfile [outfile]', 'outfile')
44
+ .option('-m --minify [minify]', 'minify')
45
+ .action(async (options) => {
46
+ process.env.BUILD_TYPE = 'css';
47
+ const { buildCss } = await import('./commands/build-css.js');
48
+ return buildCss(options);
49
+ });
50
+ program
51
+ .command('create-app')
52
+ .description('新建 App 模板')
53
+ .action(async () => {
54
+ const { createApp } = await import('./commands/create-app.js');
55
+ return createApp();
56
+ });
57
+ program
58
+ .command('dev')
59
+ .description('创建 Dev Server')
60
+ .option('-p --port [port]', 'Server Port')
61
+ .action(async (options) => {
62
+ process.env.BUILD_TYPE = 'app';
63
+ const { devServe } = await import('./commands/dev-serve.js');
64
+ return devServe(options);
65
+ });
66
+ program
67
+ .command('preview')
68
+ .description('创建 Preview Server')
69
+ .option('-p --port [port]', 'Server Port')
70
+ .action(async (options) => {
71
+ process.env.BUILD_TYPE = 'app';
72
+ const { previewServe } = await import('./commands/preview-serve.js');
73
+ return previewServe(options);
74
+ });
75
+ program
76
+ .command('extract-i18n')
77
+ .description('抽取国际化资源到JSON文件')
78
+ .option('-c --configFile [configFile]', 'config file path')
79
+ .action(async (options) => {
80
+ const { extractI18n } = await import('./commands/extract-i18n.js');
81
+ return extractI18n(options);
82
+ });
83
+ program.parse();
84
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { getPackageName } from "../common/constant.js";
2
+ const NotStyleComponents = ['designer-canvas', 'dynamic-view', 'dynamic-resolver', 'common'];
3
+ const getComponentStyle = (imports) => {
4
+ const components = imports
5
+ .filter(path => {
6
+ return path.startsWith(`${getPackageName()}/`) && !NotStyleComponents.find(notStylecomponent => path.includes(notStylecomponent));
7
+ })
8
+ .filter((item, index, array) => {
9
+ const targetIndex = array.filter(e => e !== item).findIndex(e => item.includes(e));
10
+ return targetIndex < 0;
11
+ })
12
+ .map(name => {
13
+ const component = name.split('/').pop();
14
+ return {
15
+ name: component,
16
+ path: `../${component}/style.js`
17
+ };
18
+ });
19
+ components.push({
20
+ name: 'components',
21
+ path: `./index.css`
22
+ });
23
+ const template = `${components.map(component => {
24
+ const { path } = component;
25
+ return `import '${path}';`;
26
+ }).join('\n')}
27
+ `;
28
+ return template;
29
+ };
30
+ export function createComponentStyle() {
31
+ return {
32
+ name: 'farris-gen-component-style',
33
+ renderChunk(code, chunk) {
34
+ const { imports } = chunk;
35
+ const template = getComponentStyle(imports);
36
+ template && this.emitFile({
37
+ type: 'asset',
38
+ fileName: 'style.js',
39
+ source: template
40
+ });
41
+ return code;
42
+ }
43
+ };
44
+ }
45
+ ;
46
+ //# sourceMappingURL=create-component-style.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-component-style.js","sourceRoot":"","sources":["../../src/plugins/create-component-style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,kBAAkB,GAAG,CAAC,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,QAAQ,CAAC,CAAC;AAE7F,MAAM,iBAAiB,GAAG,CAAC,OAAiB,EAAE,EAAE;IAE9C,MAAM,UAAU,GAAG,OAAO;SACvB,MAAM,CAAC,IAAI,CAAC,EAAE;QACb,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACpI,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAC7B,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA,EAAE,CAAC,CAAC,KAAG,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAChF,OAAO,WAAW,GAAG,CAAC,CAAC;IACzB,CAAC,CAAC;SACD,GAAG,CAAC,IAAI,CAAC,EAAE;QACV,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QACxC,OAAO;YACL,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,MAAM,SAAS,WAAW;SACjC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEL,UAAU,CAAC,IAAI,CAAC;QACd,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,aAAa;KACpB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QAC7C,MAAM,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC;QAC3B,OAAO,WAAW,IAAI,IAAI,CAAC;IAC7B,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;CACd,CAAC;IAEA,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL,IAAI,EAAE,4BAA4B;QAClC,WAAW,CAAC,IAAY,EAAE,KAAU;YAClC,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;YAE1B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAE5C,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;gBACxB,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,UAAU;gBACpB,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;AACJ,CAAC;AAAA,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { resolve } from "node:path";
3
+ import { CWD } from "../common/constant.js";
4
+ export const createPackageJson = () => {
5
+ return {
6
+ name: 'create-package-json',
7
+ generateBundle() {
8
+ const pkg = readFileSync(resolve(CWD, 'package.json'), 'utf-8');
9
+ const packageJson = JSON.parse(pkg);
10
+ const result = {
11
+ name: '',
12
+ version: '',
13
+ private: false,
14
+ main: './index.umd.js',
15
+ module: './index.esm.js',
16
+ types: './types/index.d.ts',
17
+ style: './index.css',
18
+ };
19
+ const exclude = ['scripts', 'devDependencies', 'private'];
20
+ Object.keys(packageJson).forEach(key => {
21
+ if (exclude.includes(key)) {
22
+ return;
23
+ }
24
+ result[key] = packageJson[key];
25
+ });
26
+ this.emitFile({
27
+ type: 'asset',
28
+ fileName: 'package.json',
29
+ source: JSON.stringify(result, null, 2)
30
+ });
31
+ }
32
+ };
33
+ };
34
+ //# sourceMappingURL=create-package-json.js.map
@@ -0,0 +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;AAE5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAQ,EAAE;IACzC,OAAO;QACL,IAAI,EAAE,qBAAqB;QAC3B,cAAc;YACZ,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC;YAChE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACpC,MAAM,MAAM,GAAwB;gBAClC,IAAI,EAAE,EAAE;gBACR,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,gBAAgB;gBACtB,MAAM,EAAE,gBAAgB;gBACxB,KAAK,EAAE,oBAAoB;gBAC3B,KAAK,EAAE,aAAa;aACrB,CAAC;YACF,MAAM,OAAO,GAAG,CAAC,SAAS,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC;YAC1D,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACrC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;oBACzB,OAAO;iBACR;gBACD,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;YAEH,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"}
@@ -0,0 +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
+ ;
9
+ //# sourceMappingURL=dts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dts.js","sourceRoot":"","sources":["../../src/plugins/dts.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,iBAAiB,CAAC;AAElC,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,MAAc;IACzD,OAAO,GAAG,CAAC;QACT,SAAS,EAAE,KAAK;QAChB,MAAM;KACP,CAAC,CAAC;AACL,CAAC;AAAA,CAAC"}
@@ -0,0 +1,12 @@
1
+ export const htmlSystemPlugin = () => {
2
+ return {
3
+ name: 'html-transform-system',
4
+ transformIndexHtml(html) {
5
+ const regexp = /<script.*type="module".*src="(.*?)"><\/script>/;
6
+ return html.replace(regexp, (str, p1) => `
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
+ };
12
+ //# sourceMappingURL=html-system.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-system.js","sourceRoot":"","sources":["../../src/plugins/html-system.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,kBAAkB,CAAC,IAAY;YAC7B,MAAM,MAAM,GAAG,gDAAgD,CAAC;YAChE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,GAAW,EAAE,EAAU,EAAC,EAAE,CAAC;;8BAEhC,EAAE,cAAc,CAAC,CAAC;QAC5C,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +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
+ ;
18
+ //# sourceMappingURL=replace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replace.js","sourceRoot":"","sources":["../../src/plugins/replace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,UAAU,OAAO,CAAC,IAAgD;IACtE,OAAO;QACL,IAAI,EAAE,qBAAqB;QAC3B,WAAW,CAAC,IAAY,EAAE,KAAU;YAClC,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC;YAC7C,sEAAsE;YACtE,MAAM,aAAa,GAAG,IAAI,MAAM,CAC9B,GAAG,cAAc,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,EAAE,SAAS;YAClE,GAAG,CACJ,CAAC;YACF,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,YAAY,EAAC,EAAE;gBACxD,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAAA,CAAC"}
@@ -0,0 +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
+ ;
16
+ //# sourceMappingURL=systemjs-bundle.js.map
@@ -0,0 +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;gBAChC,OAAO;oBACL,GAAG,OAAO;oBACV,IAAI,EAAE,SAAS;iBAChB,CAAC;aACH;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC;AAAA,CAAC"}
package/package.json CHANGED
@@ -1,40 +1,42 @@
1
- {
2
- "name": "@farris/cli",
3
- "private": false,
4
- "version": "2.0.0",
5
- "type": "module",
6
- "typings": "lib/index.d.ts",
7
- "bin": {
8
- "farris-cli": "./bin/index.js"
9
- },
10
- "engines": {
11
- "node": ">=16.0.0"
12
- },
13
- "scripts": {
14
- "build": "rimraf ./lib && tsc"
15
- },
16
- "files": [
17
- "lib",
18
- "templates",
19
- "bin.js"
20
- ],
21
- "license": "MIT",
22
- "dependencies": {
23
- "@types/inquirer": "^9.0.7",
24
- "@vitejs/plugin-vue": "^4.0.0",
25
- "@vitejs/plugin-vue-jsx": "^3.0.0",
26
- "commander": "^9.4.0",
27
- "esbuild": "^0.23.0",
28
- "esbuild-sass-plugin": "^3.3.1",
29
- "inquirer": "^9.3.0",
30
- "ora": "^8.0.1",
31
- "typescript": "^4.6.4",
32
- "vite": "^4.4.1",
33
- "vite-plugin-dts": "^3.9.1"
34
- },
35
- "devDependencies": {
36
- "@types/inquirer": "^9.0.7",
37
- "rimraf": "^5.0.7",
38
- "vue": "^3.2.37"
39
- }
40
- }
1
+ {
2
+ "name": "@farris/cli",
3
+ "private": false,
4
+ "version": "2.0.2",
5
+ "type": "module",
6
+ "typings": "lib/index.d.ts",
7
+ "bin": {
8
+ "farris-cli": "./bin/index.js"
9
+ },
10
+ "engines": {
11
+ "node": ">=16.0.0"
12
+ },
13
+ "scripts": {
14
+ "build": "rimraf ./lib && tsc"
15
+ },
16
+ "files": [
17
+ "lib",
18
+ "templates",
19
+ "bin.js"
20
+ ],
21
+ "license": "MIT",
22
+ "dependencies": {
23
+ "@types/inquirer": "^9.0.7",
24
+ "@vitejs/plugin-vue": "^4.0.0",
25
+ "@vitejs/plugin-vue-jsx": "^3.0.0",
26
+ "commander": "^9.4.0",
27
+ "esbuild": "^0.23.0",
28
+ "esbuild-sass-plugin": "^3.3.1",
29
+ "inquirer": "^9.3.0",
30
+ "ora": "^8.0.1",
31
+ "typescript": "^4.6.4",
32
+ "vite": "^4.4.1",
33
+ "vite-plugin-css-injected-by-js": "^3.5.2",
34
+ "vite-plugin-dts": "^3.9.1",
35
+ "glob": "11.0.3"
36
+ },
37
+ "devDependencies": {
38
+ "@types/inquirer": "^9.0.7",
39
+ "rimraf": "^5.0.7",
40
+ "vue": "^3.2.37"
41
+ }
42
+ }
@@ -1,15 +1,15 @@
1
- /* eslint-env node */
2
- require('@rushstack/eslint-patch/modern-module-resolution')
3
-
4
- module.exports = {
5
- root: true,
6
- 'extends': [
7
- 'plugin:vue/vue3-essential',
8
- 'eslint:recommended',
9
- '@vue/eslint-config-typescript',
10
- '@vue/eslint-config-prettier/skip-formatting'
11
- ],
12
- parserOptions: {
13
- ecmaVersion: 'latest'
14
- }
15
- }
1
+ /* eslint-env node */
2
+ require('@rushstack/eslint-patch/modern-module-resolution');
3
+
4
+ module.exports = {
5
+ root: true,
6
+ 'extends': [
7
+ 'plugin:vue/vue3-essential',
8
+ 'eslint:recommended',
9
+ '@vue/eslint-config-typescript',
10
+ '@vue/eslint-config-prettier/skip-formatting'
11
+ ],
12
+ parserOptions: {
13
+ ecmaVersion: 'latest'
14
+ }
15
+ };
@@ -1,8 +1,8 @@
1
- {
2
- "$schema": "https://json.schemastore.org/prettierrc",
3
- "semi": false,
4
- "tabWidth": 2,
5
- "singleQuote": true,
6
- "printWidth": 100,
7
- "trailingComma": "none"
1
+ {
2
+ "$schema": "https://json.schemastore.org/prettierrc",
3
+ "semi": false,
4
+ "tabWidth": 2,
5
+ "singleQuote": true,
6
+ "printWidth": 100,
7
+ "trailingComma": "none"
8
8
  }
@@ -1,24 +1,24 @@
1
- import { fileURLToPath, URL } from 'node:url';
2
-
3
- export default {
4
- format: "<%= format %>",
5
- // 输出目录 App模式默认值 './dist' Lib模式 './lib'
6
- // outDir: fileURLToPath(new URL('./dist', import.meta.url)),
7
- // 最小化 默认值 true
8
- minify: true,
9
- // 外部依赖排除项 默认值 { include: [], exclude: [] }
10
- // externals: {
11
- // include: [],
12
- // exclude: []
13
- // },
14
- // 是否排除 package.json 中 dependencies和 peerDependencies 依赖的包; App模式默认值 false Lib模式默认值 true
15
- externalDependencies: false,
16
- // 路径别名 默认值 null
17
- alias: [
18
- { find: '@', replacement: fileURLToPath(new URL('./src', import.meta.url)) }
19
- ],
20
- // 插件 默认值 [vue(), vueJsx()] 不要重复添加
21
- // plugins: [],
22
- // viteConfig 配置项
23
- viteConfig: {}
24
- }
1
+ import { fileURLToPath, URL } from 'node:url';
2
+
3
+ export default {
4
+ format: "<%= format %>",
5
+ // 输出目录 App模式默认值 './dist' Lib模式 './lib'
6
+ // outDir: fileURLToPath(new URL('./dist', import.meta.url)),
7
+ // 最小化 默认值 true
8
+ minify: true,
9
+ // 外部依赖排除项 默认值 { include: [], exclude: [] }
10
+ // externals: {
11
+ // include: [],
12
+ // exclude: []
13
+ // },
14
+ // 是否排除 package.json 中 dependencies和 peerDependencies 依赖的包; App模式默认值 false Lib模式默认值 true
15
+ externalDependencies: false,
16
+ // 路径别名 默认值 null
17
+ alias: [
18
+ { find: '@', replacement: fileURLToPath(new URL('./src', import.meta.url)) }
19
+ ],
20
+ // 插件 默认值 [vue(), vueJsx()] 不要重复添加
21
+ // plugins: [],
22
+ // viteConfig 配置项
23
+ viteConfig: {}
24
+ };
@@ -1,12 +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>Vite App</title>
7
- </head>
8
- <body>
9
- <div id="app"></div>
10
- <script type="module" src="/src/main.ts"></script>
11
- </body>
12
- </html>
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>Vite App</title>
7
+ </head>
8
+ <body>
9
+ <div id="app"></div>
10
+ <script type="module" src="/src/main.ts"></script>
11
+ </body>
12
+ </html>
@@ -1,29 +1,29 @@
1
- {
2
- "name": "<%= name %>",
3
- "version": "0.0.0",
4
- "private": true,
5
- "type": "module",
6
- "scripts": {
7
- "dev": "farris-cli dev",
8
- "build": "farris-cli build",
9
- "preview": "farris-cli preview",
10
- "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
11
- "format": "prettier --write src/"
12
- },
13
- "dependencies": {
14
- "@farris/mobile-ui-vue": "latest",
15
- "vue": "^3.4.29",
16
- "vue-router": "^4.3.0"
17
- },
18
- "devDependencies": {
19
- "@farris/cli": "<%= cliVersion %>",
20
- "@rushstack/eslint-patch": "^1.8.0",
21
- "@vue/eslint-config-prettier": "^9.0.0",
22
- "@vue/eslint-config-typescript": "^13.0.0",
23
- "@vue/tsconfig": "^0.5.1",
24
- "eslint": "^8.57.0",
25
- "eslint-plugin-vue": "^9.23.0",
26
- "prettier": "^3.2.5",
27
- "typescript": "~5.4.0"
28
- }
1
+ {
2
+ "name": "<%= name %>",
3
+ "version": "0.0.0",
4
+ "private": true,
5
+ "type": "module",
6
+ "scripts": {
7
+ "dev": "farris-cli dev",
8
+ "build": "farris-cli build",
9
+ "preview": "farris-cli preview",
10
+ "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
11
+ "format": "prettier --write src/"
12
+ },
13
+ "dependencies": {
14
+ "@farris/mobile-ui-vue": "latest",
15
+ "vue": "^3.4.29",
16
+ "vue-router": "^4.3.0"
17
+ },
18
+ "devDependencies": {
19
+ "@farris/cli": "<%= cliVersion %>",
20
+ "@rushstack/eslint-patch": "^1.8.0",
21
+ "@vue/eslint-config-prettier": "^9.0.0",
22
+ "@vue/eslint-config-typescript": "^13.0.0",
23
+ "@vue/tsconfig": "^0.5.1",
24
+ "eslint": "^8.57.0",
25
+ "eslint-plugin-vue": "^9.23.0",
26
+ "prettier": "^3.2.5",
27
+ "typescript": "~5.4.0"
28
+ }
29
29
  }