mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2025-12-13 04:03:07 +00:00
Init project
This commit is contained in:
commit
b2e3c34b0d
86
.gitignore
vendored
Normal file
86
.gitignore
vendored
Normal file
@ -0,0 +1,86 @@
|
||||
# Logs
|
||||
logs
|
||||
*.log
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
lerna-debug.log*
|
||||
|
||||
# Runtime data
|
||||
pids
|
||||
*.pid
|
||||
*.seed
|
||||
*.pid.lock
|
||||
|
||||
|
||||
# Directory for instrumented libs generated by jscoverage/JSCover
|
||||
lib-cov
|
||||
|
||||
# Coverage directory used by tools like istanbul
|
||||
coverage
|
||||
|
||||
# nyc test coverage
|
||||
.nyc_output
|
||||
|
||||
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
|
||||
.grunt
|
||||
|
||||
# Bower dependency directory (https://bower.io/)
|
||||
bower_components
|
||||
|
||||
# node-waf configuration
|
||||
.lock-wscript
|
||||
|
||||
# Compiled binary addons (https://nodejs.org/api/addons.html)
|
||||
build/Release
|
||||
lib
|
||||
|
||||
# Dependency directories
|
||||
node_modules/
|
||||
jspm_packages/
|
||||
|
||||
# TypeScript v1 declaration files
|
||||
typings/
|
||||
|
||||
# Optional npm cache directory
|
||||
.npm
|
||||
|
||||
# Optional eslint cache
|
||||
.eslintcache
|
||||
|
||||
# Optional REPL history
|
||||
.node_repl_history
|
||||
|
||||
# Output of 'npm pack'
|
||||
*.tgz
|
||||
|
||||
# Yarn Integrity file
|
||||
.yarn-integrity
|
||||
|
||||
# dotenv environment variables file
|
||||
.env
|
||||
.env.test
|
||||
|
||||
# parcel-bundler cache (https://parceljs.org/)
|
||||
.cache
|
||||
|
||||
# next.js build output
|
||||
.next
|
||||
|
||||
# nuxt.js build output
|
||||
.nuxt
|
||||
|
||||
# vuepress build output
|
||||
.vuepress/dist
|
||||
|
||||
# Serverless directories
|
||||
.serverless/
|
||||
|
||||
# FuseBox cache
|
||||
.fusebox/
|
||||
|
||||
# DynamoDB Local files
|
||||
.dynamodb/
|
||||
|
||||
# mac config files
|
||||
.DS_Store
|
||||
5
.prettierrc
Normal file
5
.prettierrc
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
"semi": true,
|
||||
"singleQuote": true,
|
||||
"trailingComma": "es5"
|
||||
}
|
||||
55
README.md
Normal file
55
README.md
Normal file
@ -0,0 +1,55 @@
|
||||
Ali Lowcode Engine(阿里低代码引擎)
|
||||
---
|
||||
|
||||
[Lerna](https://github.com/lerna/lerna) + [TS](https://www.typescriptlang.org/)
|
||||
|
||||
## 准备
|
||||
|
||||
```bash
|
||||
npm login --registry http://registry.npm.alibaba-inc.com --scope @ali
|
||||
```
|
||||
|
||||
```bash
|
||||
tnpm i -g git-cz
|
||||
```
|
||||
|
||||
## 开发
|
||||
|
||||
#### 创建新包:
|
||||
|
||||
- `./create.sh <package-name>`
|
||||
|
||||
#### 跑起来:
|
||||
|
||||
- `tnpm i`
|
||||
- `npm run boot`
|
||||
- `npm run build`
|
||||
|
||||
#### Link & unlink
|
||||
|
||||
- `cd packages/<package-name> && tnpm link -g`
|
||||
- `tnpm link @ali/<package-name>`
|
||||
|
||||
- `tnpm unlink @ali/<package-name>`
|
||||
|
||||
#### 开发过程中:
|
||||
|
||||
- `git add <your-files>`
|
||||
- `git cz`
|
||||
|
||||
## 发布
|
||||
|
||||
- `npm run pub`
|
||||
|
||||
## 注意
|
||||
|
||||
- Commit 动作尽量使用 `git cz`,方便按语义化版本自动递增,以及自动生成 `CHANGELOG.md`
|
||||
- `packages` 工程里一些开发时公共依赖(比如:`typescript`、`ava` 等)会放到工程顶层
|
||||
- 工程里的 `.md`、`test/` 等文件修改不会产生新的发布
|
||||
- 当工程里存在多个 ts 文件的目录时,最终产生的文件会按文件夹形式放到 `lib` 下
|
||||
|
||||
## 包权限管理
|
||||
|
||||
- `npm owner ls @ali/<pkg> --registry http://registry.npm.alibaba-inc.com`
|
||||
- `npm owner add <user> @ali/<pkg> --registry http://registry.npm.alibaba-inc.com`
|
||||
- `npm owner rm <user> @ali/<pkg> --registry http://registry.npm.alibaba-inc.com `
|
||||
21
create.sh
Executable file
21
create.sh
Executable file
@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
DIR_NAME=$1
|
||||
|
||||
if [ -z $DIR_NAME ];then
|
||||
echo 'Usage: ./create.sh <folder-name>'
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ -d packages/$DIR_NAME ];then
|
||||
echo 'Folder is existing!'
|
||||
exit 0
|
||||
fi
|
||||
|
||||
mkdir packages/$DIR_NAME
|
||||
|
||||
cp -r templates/* packages/$DIR_NAME
|
||||
|
||||
mv packages/$DIR_NAME/_tsconfig.json packages/$DIR_NAME/tsconfig.json
|
||||
|
||||
echo 'Add package successfully.'
|
||||
37
docs/code-specification.md
Normal file
37
docs/code-specification.md
Normal file
@ -0,0 +1,37 @@
|
||||
编码规约
|
||||
---
|
||||
|
||||
### 命名
|
||||
|
||||
- 使用 `PascalCase` 为类型命名
|
||||
- 使用 `I` 做为接口名前缀
|
||||
- 使用 `PascalCase` 为枚举值命名
|
||||
- 使用 `camelCase` 为函数命名
|
||||
- 使用 `camelCase` 为属性或本地变量命名
|
||||
- 不要为私有属性名添加 `_` 前缀
|
||||
- 尽可能使用完整的单词拼写命名
|
||||
- 文件夹命名统一使用小写
|
||||
|
||||
### 组件
|
||||
|
||||
- 一个文件对应一个组件或类
|
||||
|
||||
### 类型
|
||||
|
||||
- 不要随意导出类型/函数,除非你要在不同的组件中共享它
|
||||
- 不要在全局命名空间内定义类型/值
|
||||
- 共享的类型应该在 `types.ts` 里定义
|
||||
- 在一个文件里,类型定义应该出现在顶部
|
||||
- interface 和 type 很类似,原则上能用 interface 实现,就用 interface , 如果不能才用 type
|
||||
|
||||
### 注释
|
||||
|
||||
- 为函数,接口,枚举类型和类使用 JSDoc 风格的注释
|
||||
|
||||
### 字符串
|
||||
|
||||
- 使用单引号 `''`
|
||||
|
||||
### 单元测试
|
||||
|
||||
- 单元测试文件根据文件目录结构来放置
|
||||
17
lerna.json
Normal file
17
lerna.json
Normal file
@ -0,0 +1,17 @@
|
||||
{
|
||||
"lerna": "2.11.0",
|
||||
"version": "independent",
|
||||
"npmClient": "tnpm",
|
||||
"command": {
|
||||
"publish": {
|
||||
"ignoreChanges": [
|
||||
"**/*.md",
|
||||
"**/test/**"
|
||||
],
|
||||
"conventionalCommits": true
|
||||
}
|
||||
},
|
||||
"packages": [
|
||||
"packages/*"
|
||||
]
|
||||
}
|
||||
49
package.json
Normal file
49
package.json
Normal file
@ -0,0 +1,49 @@
|
||||
{
|
||||
"name": "ali-lowcode-engine",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"boot": "lerna bootstrap --registry http://registry.npm.alibaba-inc.com",
|
||||
"clean": "rimraf ./packages/*/lib ./packages/*/node_modules",
|
||||
"pub": "npm run test && lerna publish --registry http://registry.npm.alibaba-inc.com",
|
||||
"lint": "tslint -p tsconfig.json",
|
||||
"lint:fix": "tslint --fix -p tsconfig.json",
|
||||
"build": "lerna run build",
|
||||
"test": "lerna run test"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^10.12.18",
|
||||
"ava": "^1.0.1",
|
||||
"commitizen": "^3.0.5",
|
||||
"cz-conventional-changelog": "^2.1.0",
|
||||
"husky": "^1.3.1",
|
||||
"lerna": "^2.11.0",
|
||||
"lint-staged": "^8.1.0",
|
||||
"prettier": "^1.15.3",
|
||||
"rimraf": "^2.6.3",
|
||||
"ts-node": "^7.0.1",
|
||||
"tslint": "^5.12.0",
|
||||
"tslint-config-prettier": "^1.17.0",
|
||||
"tslint-plugin-prettier": "^2.0.1",
|
||||
"typescript": "^3.2.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^8 || ^10"
|
||||
},
|
||||
"lint-staged": {
|
||||
"*.ts": [
|
||||
"prettier --write",
|
||||
"tslint --fix -p tsconfig.json",
|
||||
"git add"
|
||||
]
|
||||
},
|
||||
"husky": {
|
||||
"hooks": {
|
||||
"pre-commit": "lint-staged"
|
||||
}
|
||||
},
|
||||
"config": {
|
||||
"commitizen": {
|
||||
"path": "node_modules/cz-conventional-changelog"
|
||||
}
|
||||
}
|
||||
}
|
||||
2
templates/README.md
Normal file
2
templates/README.md
Normal file
@ -0,0 +1,2 @@
|
||||
TODO
|
||||
---
|
||||
6
templates/_tsconfig.json
Normal file
6
templates/_tsconfig.json
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"extends": "../../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "./lib"
|
||||
}
|
||||
}
|
||||
23
templates/package.json
Normal file
23
templates/package.json
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
"name": "@ali/lowcode-engine-",
|
||||
"version": "0.0.0",
|
||||
"description": "xxx for Ali lowCode engine",
|
||||
"main": "lib/index.js",
|
||||
"files": [
|
||||
"lib"
|
||||
],
|
||||
"scripts": {
|
||||
"build": "tsc",
|
||||
"test": "ava"
|
||||
},
|
||||
"ava": {
|
||||
"compileEnhancements": false,
|
||||
"extensions": [
|
||||
"ts"
|
||||
],
|
||||
"require": [
|
||||
"ts-node/register"
|
||||
]
|
||||
},
|
||||
"license": "MIT"
|
||||
}
|
||||
1
templates/src/index.ts
Normal file
1
templates/src/index.ts
Normal file
@ -0,0 +1 @@
|
||||
//
|
||||
5
templates/test/foobar.ts
Normal file
5
templates/test/foobar.ts
Normal file
@ -0,0 +1,5 @@
|
||||
import test from 'ava';
|
||||
|
||||
test('foobar', t => {
|
||||
t.pass();
|
||||
});
|
||||
16
tsconfig.json
Normal file
16
tsconfig.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "es6",
|
||||
"lib": ["esnext", "dom"],
|
||||
"module": "commonjs",
|
||||
"strict": true,
|
||||
"declaration": true,
|
||||
"esModuleInterop": true,
|
||||
"resolveJsonModule": true,
|
||||
"sourceMap": true
|
||||
},
|
||||
"exclude": [
|
||||
"**/test",
|
||||
"**/lib"
|
||||
]
|
||||
}
|
||||
14
tslint.json
Normal file
14
tslint.json
Normal file
@ -0,0 +1,14 @@
|
||||
{
|
||||
"defaultSeverity": "error",
|
||||
"extends": [
|
||||
"tslint:recommended",
|
||||
"tslint-config-prettier"
|
||||
],
|
||||
"rulesDirectory": ["tslint-plugin-prettier"],
|
||||
"rules": {
|
||||
"prettier": true,
|
||||
"object-literal-sort-keys": false,
|
||||
"no-var-requires": false,
|
||||
"no-console": false
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user