Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
stauren committed Oct 14, 2022
0 parents commit 0a9f95e
Show file tree
Hide file tree
Showing 361 changed files with 28,699 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .browserslistrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
defaults
IE 11
16 changes: 16 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# top-most EditorConfig file
root = true

[*]
end_of_line = lf
insert_final_newline = true
charset = utf-8
indent_size = 2
indent_style = space
trim_trailing_whitespace = true

[*.md]
trim_trailing_whitespace = false

[*.json]
insert_final_newline = false
1 change: 1 addition & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
VISE_DEBUG=false
10 changes: 10 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
/build/
/config/
**/dist
**/node_modules
**/bin
packages/express-server/client
packages/generated-proto
packages/react/template
packages/vue3/template
stats.html
59 changes: 59 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
// @ts-check

module.exports = {
root: true,
parser: 'vue-eslint-parser',
parserOptions: {
parser: '@typescript-eslint/parser',
tsconfigRootDir: __dirname,
project: ['./tsconfig.json', './packages/**/tsconfig.json'],
sourceType: 'module',
ecmaVersion: 'latest',
extraFileExtensions: ['.vue', '.cjs', '.mjs'],
},
extends: [
'plugin:react-hooks/recommended',
'plugin:react/recommended',
'plugin:vue/vue3-recommended',
'eslint-config-tencent',
'eslint-config-tencent/ts',
],
plugins: [
'react-hooks',
'react',
'vue',
'unicorn',
'folders',
],
ignorePatterns: [
// git commit hooks 不读取 .gitignore,这里再配一份…
'packages/react/template',
'packages/vue3/template',
],
rules: {
// it won't be fixed when using --fix flag
'unicorn/filename-case': [
'warn',
{
case: 'kebabCase',
},
],
'no-multiple-empty-lines': [
'error',
{
max: 1,
},
],
},
overrides: [{
files: ['packages/**/*.vue'],
rules: {
'react-hooks/rules-of-hooks': 'off',
},
}],
settings: {
react: {
version: '18.2.0',
},
},
};
24 changes: 24 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
node_modules
.DS_Store
dist
dist-ssr
*.local
*.swp
packages/core/package-lock.json
/package-lock.json
yarn-error.log
packages/express-server/client
packages/express-server/bundle
packages/express-server/bundles
packages/express-server/public
packages/**/stats.html
packages/**/client-stats.html
packages/**/server-stats.html
packages/**/hooks-stats.html
/coverage/
jest_html_reporters.html
/result.json
packages/**/coverage
packages/**/result.json
scripts/make-deploy.sh
*.js.map
8 changes: 8 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"recommendations": [
"johnsoncodehk.volar",
"iceworks-team.iceworks-codemod",
"editorconfig.editorconfig",
"dbaeumer.vscode-eslint"
]
}
40 changes: 40 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Start PentaShare Dev",
"preLaunchTask": "[vise-core]: build",
"request": "launch",
"cwd": "${workspaceFolder}/packages/app-penta-share",
"command": "npm run dev",
"skipFiles": [
"<node_internals>/**"
],
"type": "node-terminal"
},
{
"name": "Start Vise Intro Dev",
"preLaunchTask": "[vise-core]: build",
"request": "launch",
"cwd": "${workspaceFolder}/packages/app-vue3-intro",
"command": "npm run dev",
"skipFiles": [
"<node_internals>/**"
],
"type": "node-terminal"
},
{
"name": "Start Express Serve",
"request": "launch",
"cwd": "${workspaceFolder}/packages/express-server",
"command": "npm run serve",
"skipFiles": [
"<node_internals>/**"
],
"type": "node-terminal"
},
]
}
10 changes: 10 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"eslint.validate": [
"javascript",
"javascriptreact",
"typescript",
"vue"
],
"cSpell.ignoreWords": [
]
}
23 changes: 23 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"version": "2.0.0",
"tasks": [
{
"type": "npm",
"script": "build",
"label": "[vise-core]: build",
"path": "packages/core/",
"group": "build",
"problemMatcher": [],
"detail": "rollup -c ./rollup.config.js"
},
{
"type": "npm",
"label": "[vise-core]: watch",
"script": "watch",
"path": "packages/core/",
"group": "build",
"problemMatcher": [],
"detail": "npm run clean:all && rollup -w -c ./rollup.config.js"
}
]
}
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2022 stauren

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
9 changes: 9 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Vise
Vise 是一个 Web 同构 SSR 开发框架,包含项目创建、开发、打包等功能,提供了远快于 Webpack 的基于 [Vite][vite] 的基于 esm 的开发调试服务器,提供了基于 [express](https://expressjs.com/) 的 Node.js HTTP 服务器,目标是让业务项目可以关注在业务功能实现上。

查看项目详细文档,请点击:[https://vise.com](https://vise.com)

# 整体设计
![Vise SSR framework](https://cdn.rawgit.com/stauren/vise-ssr/main/packages/app-vue3-intro/public/ssr.drawio.png)

[vite]: <https://vitejs.dev/>
29 changes: 29 additions & 0 deletions TODO.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Vise 待实现功能

## 优先级 P0
- [ ] vise plugin 机制
- [ ] 补全单元测试
- [ ] 配置文件支持 app 自定义 html 模板

## 优先级 P1
- [ ] vise init 命令
- [ ] 多级复杂页面路由约定、配置支持

## 优先级 P2
- [ ] vise deploy 命令
- [ ] router middleware (路由拦截,页面鉴权等)
- [ ] vue server render 性能优化, AST 等
- [ ] SSG 支持

## 已完成
- [x] vise dev 命令
- [x] vise build 命令
- [x] vise.config.js 支持配置文件
- [x] pages layouts 展示
- [x] 通过配置文件配置服务端口
- [x] pages 组件的服务端、客户端数据加载生命周期(服务端支持 tRPC 命令字加载)
- [x] 更完善的文档展示和首页设计
- [x] 单元测试框架
- [x] ssr 阶段 context 通讯机制
- [x] server fetcher pkg 独立
- [x] CSR fallback 机制
57 changes: 57 additions & 0 deletions docs/_config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
title: Vise - Isomorphic SSR framework based on Vite.js
author:
name: stauren
email: stauren@qq.com
description: >
Vise 是一个 Web 同构 SSR 开发框架,包含项目创建、开发、打包等功能,提供了远快于 Webpack 的基于 Vite 的基于 esm 的开发调试服务器,提供了基于 express 的 Node.js HTTP 服务器,目标是让业务项目可以关注在业务功能实现上。
show_excerpts: false # set to true to show excerpts on the homepage

# Minima date format
# refer to https://shopify.github.io/liquid/filters/date/ if you want to customize this
minima:
date_format: "%b %-d, %Y"

# generate social links in footer
social_links:
# twitter: jekyllrb
github: stauren
# devto: jekyll
# dribbble: jekyll
# facebook: jekyll
# flickr: jekyll
# instagram: jekyll
# linkedin: jekyll
# pinterest: jekyll
# youtube: jekyll
# youtube_channel: UC8CXR0-3I70i1tfPg1PAE1g
# youtube_channel_name: CloudCannon
# telegram: jekyll
# googleplus: +jekyll
# microdotblog: jekyll
# keybase: jekyll

# Mastodon instances
# mastodon:
# - username: jekyll
# instance: example.com
# - username: jekyll2
# instance: example.com

# GitLab instances
# gitlab:
# - username: jekyll
# instance: example.com
# - username: jekyll2
# instance: example.com

# If you want to link only specific pages in your header, uncomment
# this and add the path to the pages in order as they should show up
#header_pages:
# - about.md

# Build settings
theme: minima

plugins:
- jekyll-feed
- jekyll-seo-tag
Loading

0 comments on commit 0a9f95e

Please sign in to comment.