正在显示
13 个修改的文件
包含
138 行增加
和
17 行删除
_scripts/BlockGenerator/index.js
0 → 100644
1 | +const Generator = require('yeoman-generator'); | ||
2 | +const { statSync } = require('fs'); | ||
3 | +const glob = require('glob'); | ||
4 | + | ||
5 | +class BlockGenerator extends Generator { | ||
6 | + writing() { | ||
7 | + glob | ||
8 | + .sync('**/*', { | ||
9 | + cwd: this.templatePath(), | ||
10 | + dot: true, | ||
11 | + }) | ||
12 | + .forEach(file => { | ||
13 | + const filePath = this.templatePath(file); | ||
14 | + if (statSync(filePath).isFile()) { | ||
15 | + this.fs.copyTpl( | ||
16 | + this.templatePath(filePath), | ||
17 | + this.destinationPath(file.replace(/^_/, '.')), | ||
18 | + { | ||
19 | + name: process.env.BLOCK.split('/')[1], | ||
20 | + }, | ||
21 | + ); | ||
22 | + } | ||
23 | + }); | ||
24 | + } | ||
25 | +} | ||
26 | + | ||
27 | +module.exports = BlockGenerator; |
_scripts/BlockGenerator/package.json
0 → 100644
1 | +import React, { Component } from 'react'; | ||
2 | +import { Button } from 'antd'; | ||
3 | +import { connect } from 'dva'; | ||
4 | + | ||
5 | +import styles from './style.less'; | ||
6 | + | ||
7 | +@connect(({ BLOCK_NAME_CAMEL_CASE }) => BLOCK_NAME_CAMEL_CASE) | ||
8 | +class Page extends Component { | ||
9 | + componentDidMount() { | ||
10 | + const { dispatch } = this.props; | ||
11 | + dispatch({ | ||
12 | + type: 'BLOCK_NAME_CAMEL_CASE/fetch', | ||
13 | + }); | ||
14 | + } | ||
15 | + | ||
16 | + render() { | ||
17 | + const { text } = this.props; | ||
18 | + return ( | ||
19 | + <div className={styles.container}> | ||
20 | + <Button>{text}</Button> | ||
21 | + </div> | ||
22 | + ); | ||
23 | + } | ||
24 | +} | ||
25 | + | ||
26 | +export default Page; |
1 | +import { getText } from './service'; | ||
2 | + | ||
3 | +export default { | ||
4 | + namespace: 'BLOCK_NAME_CAMEL_CASE', | ||
5 | + state: { | ||
6 | + text: 'loading...', | ||
7 | + }, | ||
8 | + | ||
9 | + effects: { | ||
10 | + *fetch(_, { call, put }) { | ||
11 | + const { text } = yield call(getText); | ||
12 | + yield put({ | ||
13 | + type: 'save', | ||
14 | + payload: { | ||
15 | + text, | ||
16 | + }, | ||
17 | + }); | ||
18 | + }, | ||
19 | + }, | ||
20 | + | ||
21 | + reducers: { | ||
22 | + save(state, { payload }) { | ||
23 | + return { | ||
24 | + ...state, | ||
25 | + ...payload, | ||
26 | + }; | ||
27 | + }, | ||
28 | + }, | ||
29 | +}; |
_scripts/create.js
0 → 100644
1 | +const { join } = require('path'); | ||
2 | +const BlockGenerator = require('./BlockGenerator'); | ||
3 | + | ||
4 | +if (!process.env.BLOCK) { | ||
5 | + console.log(` | ||
6 | +Please specify the BLOCK env, | ||
7 | + | ||
8 | +e.g. | ||
9 | + | ||
10 | +$ BLOCK=templates/new-template yarn run create | ||
11 | +$ BLOCK=blocks/new-block yarn run create | ||
12 | + `); | ||
13 | + process.exit(1); | ||
14 | +} | ||
15 | + | ||
16 | +const generator = new BlockGenerator({ | ||
17 | + name: 'foo', | ||
18 | + env: { | ||
19 | + cwd: join(__dirname, '..', process.env.BLOCK), | ||
20 | + }, | ||
21 | + resolved: require.resolve(require.resolve('./BlockGenerator')), | ||
22 | +}); | ||
23 | + | ||
24 | +generator.run(() => { | ||
25 | + console.log('done'); | ||
26 | +}); | ||
27 | + |
blocks/blank/README.md
已删除
100644 → 0
@@ -8,7 +8,8 @@ | @@ -8,7 +8,8 @@ | ||
8 | "lint-staged": "lint-staged", | 8 | "lint-staged": "lint-staged", |
9 | "lint-staged:js": "eslint --ext .js", | 9 | "lint-staged:js": "eslint --ext .js", |
10 | "prettier": "node ./_scripts/prettier.js", | 10 | "prettier": "node ./_scripts/prettier.js", |
11 | - "build": "node ./_scripts/generate.js" | 11 | + "build": "node ./_scripts/build.js", |
12 | + "create": "node ./_scripts/create.js" | ||
12 | }, | 13 | }, |
13 | "devDependencies": { | 14 | "devDependencies": { |
14 | "@ant-design/pro-layout": "^4.5.16", | 15 | "@ant-design/pro-layout": "^4.5.16", |
@@ -22,7 +23,7 @@ | @@ -22,7 +23,7 @@ | ||
22 | "eslint-plugin-jsx-a11y": "^6.1.2", | 23 | "eslint-plugin-jsx-a11y": "^6.1.2", |
23 | "eslint-plugin-markdown": "^1.0.0-beta.6", | 24 | "eslint-plugin-markdown": "^1.0.0-beta.6", |
24 | "eslint-plugin-react": "^7.11.1", | 25 | "eslint-plugin-react": "^7.11.1", |
25 | - "glob": "^7.1.3", | 26 | + "glob": "^7.1.4", |
26 | "husky": "^1.2.0", | 27 | "husky": "^1.2.0", |
27 | "lint-staged": "^8.1.0", | 28 | "lint-staged": "^8.1.0", |
28 | "mkdirp": "^0.5.1", | 29 | "mkdirp": "^0.5.1", |
@@ -33,7 +34,8 @@ | @@ -33,7 +34,8 @@ | ||
33 | "umi": "^2.3.0-0", | 34 | "umi": "^2.3.0-0", |
34 | "umi-plugin-block-dev": "^2.0.0", | 35 | "umi-plugin-block-dev": "^2.0.0", |
35 | "umi-plugin-react": "^1.3.0-0", | 36 | "umi-plugin-react": "^1.3.0-0", |
36 | - "umi-request": "^1.2.6" | 37 | + "umi-request": "^1.2.6", |
38 | + "yeoman-generator": "^4.1.0" | ||
37 | }, | 39 | }, |
38 | "lint-staged": { | 40 | "lint-staged": { |
39 | "x/**/*.{js,ts,tsx,json,jsx,less}": [ | 41 | "x/**/*.{js,ts,tsx,json,jsx,less}": [ |
请
注册
或
登录
后发表评论