@farris/cli 1.0.28 → 2.0.0-beta.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. package/bin/index.js +2 -0
  2. package/lib/commands/build-components.js +36 -0
  3. package/lib/commands/build-css.js +11 -0
  4. package/lib/commands/build-lib.js +16 -0
  5. package/lib/commands/build.js +10 -0
  6. package/lib/commands/create-app.js +54 -0
  7. package/lib/commands/dev-serve.js +23 -0
  8. package/lib/commands/preview-serve.js +16 -0
  9. package/lib/common/constant.js +18 -0
  10. package/lib/common/generate-app.js +44 -0
  11. package/lib/common/get-dependencies.js +9 -0
  12. package/lib/common/get-farris-config.js +11 -0
  13. package/lib/common/get-version.js +6 -0
  14. package/lib/common/get-vite-config.js +38 -0
  15. package/lib/config/vite-app.js +14 -0
  16. package/lib/config/vite-lib.js +35 -0
  17. package/lib/index.js +54 -0
  18. package/lib/plugins/dts.js +8 -0
  19. package/lib/plugins/gen-component-style.js +43 -0
  20. package/lib/plugins/html-system.js +11 -0
  21. package/lib/plugins/replace.js +13 -0
  22. package/package.json +30 -18
  23. package/templates/lib/.eslintrc.cjs +15 -0
  24. package/templates/lib/.prettierrc.json +8 -0
  25. package/templates/lib/farris.config.mjs +35 -0
  26. package/templates/lib/index.html +12 -0
  27. package/templates/lib/package.json +29 -0
  28. package/templates/lib/packages/button/src/index.vue +4 -0
  29. package/templates/lib/packages/index.ts +7 -0
  30. package/templates/lib/src/App.vue +5 -0
  31. package/templates/lib/src/main.ts +9 -0
  32. package/templates/lib/tsconfig.json +18 -0
  33. package/templates/mobile/.eslintrc.cjs +15 -0
  34. package/templates/mobile/.prettierrc.json +8 -0
  35. package/templates/mobile/farris.config.mjs +24 -0
  36. package/templates/mobile/index.html +12 -0
  37. package/templates/mobile/package.json +29 -0
  38. package/templates/mobile/src/App.vue +80 -0
  39. package/templates/mobile/src/components/TheButton.vue +3 -0
  40. package/templates/mobile/src/main.ts +12 -0
  41. package/templates/mobile/src/router/index.ts +23 -0
  42. package/templates/mobile/src/views/AboutView.vue +15 -0
  43. package/templates/mobile/src/views/HomeView.vue +9 -0
  44. package/templates/mobile/tsconfig.json +18 -0
  45. package/README.md +0 -2
  46. package/ci/cli.js +0 -467
@@ -0,0 +1,4 @@
1
+ <template>
2
+ <div>button</div>
3
+ </template>
4
+
@@ -0,0 +1,7 @@
1
+ import Button from './button/src/index.vue'
2
+
3
+ export default {
4
+ install: (app) => {
5
+ app.component('AppButton', Button)
6
+ }
7
+ }
@@ -0,0 +1,5 @@
1
+ <template>
2
+ <div>App</div>
3
+ <app-button></app-button>
4
+ </template>
5
+
@@ -0,0 +1,9 @@
1
+ import { createApp } from 'vue'
2
+ import App from './App.vue'
3
+ import componentsLib from "@packages/index";
4
+
5
+ const app = createApp(App)
6
+
7
+ app.use(componentsLib)
8
+
9
+ app.mount('#app')
@@ -0,0 +1,18 @@
1
+ {
2
+ "extends": "@vue/tsconfig/tsconfig.dom.json",
3
+ "include": [
4
+ "src/**/*",
5
+ "src/**/*.vue",
6
+ "packages/**/*",
7
+ "packages/**/*.vue",
8
+ ],
9
+ "compilerOptions": {
10
+ "composite": true,
11
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
12
+ "baseUrl": ".",
13
+ "paths": {
14
+ "@/*": ["src/*"],
15
+ "@packages/*": ["packages/*"],
16
+ }
17
+ }
18
+ }
@@ -0,0 +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
+ }
@@ -0,0 +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"
8
+ }
@@ -0,0 +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
+ }
@@ -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>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>
@@ -0,0 +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
+ }
29
+ }
@@ -0,0 +1,80 @@
1
+ <script setup lang="ts">
2
+ import { RouterLink, RouterView } from 'vue-router'
3
+ </script>
4
+
5
+ <template>
6
+ <header>
7
+ <div class="wrapper">
8
+ <nav>
9
+ <RouterLink to="/">Home</RouterLink>
10
+ <RouterLink to="/about">About</RouterLink>
11
+ </nav>
12
+ </div>
13
+ </header>
14
+
15
+ <RouterView />
16
+ </template>
17
+
18
+ <style scoped>
19
+ header {
20
+ line-height: 1.5;
21
+ max-height: 100vh;
22
+ }
23
+
24
+ .logo {
25
+ display: block;
26
+ margin: 0 auto 2rem;
27
+ }
28
+
29
+ nav {
30
+ width: 100%;
31
+ font-size: 12px;
32
+ text-align: center;
33
+ margin-top: 2rem;
34
+ }
35
+
36
+ nav a.router-link-exact-active {
37
+ color: var(--color-text);
38
+ }
39
+
40
+ nav a.router-link-exact-active:hover {
41
+ background-color: transparent;
42
+ }
43
+
44
+ nav a {
45
+ display: inline-block;
46
+ padding: 0 1rem;
47
+ border-left: 1px solid var(--color-border);
48
+ }
49
+
50
+ nav a:first-of-type {
51
+ border: 0;
52
+ }
53
+
54
+ @media (min-width: 1024px) {
55
+ header {
56
+ display: flex;
57
+ place-items: center;
58
+ padding-right: calc(var(--section-gap) / 2);
59
+ }
60
+
61
+ .logo {
62
+ margin: 0 2rem 0 0;
63
+ }
64
+
65
+ header .wrapper {
66
+ display: flex;
67
+ place-items: flex-start;
68
+ flex-wrap: wrap;
69
+ }
70
+
71
+ nav {
72
+ text-align: left;
73
+ margin-left: -1rem;
74
+ font-size: 1rem;
75
+
76
+ padding: 1rem 0;
77
+ margin-top: 1rem;
78
+ }
79
+ }
80
+ </style>
@@ -0,0 +1,3 @@
1
+ <template>
2
+ <fm-button>按钮</fm-button>
3
+ </template>
@@ -0,0 +1,12 @@
1
+ import { createApp } from 'vue'
2
+ import FarrisVue from '@farris/mobile-ui-vue'
3
+ import App from './App.vue'
4
+ import router from './router'
5
+
6
+ import '@farris/mobile-ui-vue/style.css'
7
+
8
+ const app = createApp(App)
9
+
10
+ app.use(router).use(FarrisVue)
11
+
12
+ app.mount('#app')
@@ -0,0 +1,23 @@
1
+ import { createRouter, createWebHistory } from 'vue-router'
2
+ import HomeView from '../views/HomeView.vue'
3
+
4
+ const router = createRouter({
5
+ history: createWebHistory(import.meta.env.BASE_URL),
6
+ routes: [
7
+ {
8
+ path: '/',
9
+ name: 'home',
10
+ component: HomeView
11
+ },
12
+ {
13
+ path: '/about',
14
+ name: 'about',
15
+ // route level code-splitting
16
+ // this generates a separate chunk (About.[hash].js) for this route
17
+ // which is lazy-loaded when the route is visited.
18
+ component: () => import('../views/AboutView.vue')
19
+ }
20
+ ]
21
+ })
22
+
23
+ export default router
@@ -0,0 +1,15 @@
1
+ <template>
2
+ <div class="about">
3
+ <h1>This is an about page</h1>
4
+ </div>
5
+ </template>
6
+
7
+ <style>
8
+ @media (min-width: 1024px) {
9
+ .about {
10
+ min-height: 100vh;
11
+ display: flex;
12
+ align-items: center;
13
+ }
14
+ }
15
+ </style>
@@ -0,0 +1,9 @@
1
+ <script setup lang="ts">
2
+ import TheButton from '../components/TheButton.vue'
3
+ </script>
4
+
5
+ <template>
6
+ <main>
7
+ <TheButton />
8
+ </main>
9
+ </template>
@@ -0,0 +1,18 @@
1
+ {
2
+ "extends": "@vue/tsconfig/tsconfig.dom.json",
3
+ "include": [
4
+ "env.d.ts",
5
+ "src/**/*",
6
+ "src/**/*.vue"
7
+ ],
8
+ "compilerOptions": {
9
+ "composite": true,
10
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
11
+ "baseUrl": ".",
12
+ "paths": {
13
+ "@/*": [
14
+ "./src/*"
15
+ ]
16
+ }
17
+ }
18
+ }
package/README.md DELETED
@@ -1,2 +0,0 @@
1
- # farris-cli
2
-