• 介绍
  • 新建Demo项目
  • 新建Demo模块
  • 编写config.js
  • 编写package.json
  • 编写demo入口文件
  • 启动及页面访问

    介绍

    此Demo项目基于Choerodon开发,使用React作为开发语言。

    本文包括如下几个步骤:

    • 新建Demo项目
    • 新建Demo模块
    • 编写config.js
    • 编写package.json
    • 编写demo入口文件
    • 页面访问

    新建Demo项目

    本地新建一个空的项目choerodon-todo-service

    1. $ mkdir -p choerodon-todo-service
    2. $ cd choerodon-todo-service

    新建Demo模块

    创建新模块的文件夹

    1. $ mkdir -p react/src/app/demo/containers

    编写config.js

    在react文件夹下创建config.js

    1. $ cd react
    2. $ touch config.js
    1. // config.js
    2. const config = {
    3. local: true, //是否为本地开发
    4. server: 'http://api.staging.saas.hand-china.com', // 后端接口服务器地址
    5. master: '@choerodon/master',
    6. projectType: 'choerodon',
    7. buildType: 'single',
    8. dashboard: {},
    9. };
    10. module.exports = config;

    编写package.json

    在项目根目录下创建package.json

    1. $ cd ..
    2. $ npm init
    1. // package.json
    2. {
    3. "name": "@choerodon/demo", // name为模块名(可以增加@choerodon scope)
    4. "routeName": "demo", // routeName为路由前缀(如空,取name为路由前缀)
    5. "version": "1.0.0",
    6. "description": "",
    7. "main": "./react/src/app/demo/containers/DEMOIndex.js", // main为入口index的路径(如空,当前模块不会被编译进去,一般只有总前端类型不设置)
    8. "scripts": {
    9. "start": "choerodon-front-boot start --config ./react/config.js",
    10. "dist": "choerodon-front-boot dist --config ./react/config.js",
    11. "lint-staged": "lint-staged",
    12. "lint-staged:es": "eslint",
    13. "compile": "gulp compile"
    14. },
    15. "contributors": [
    16. "choerodon"
    17. ],
    18. "license": "ISC",
    19. "dependencies": {
    20. "@choerodon/boot": "0.17.x",
    21. "@choerodon/master": "0.17.x" // 表示进入页面后的部分,菜单、header和AutoRouter等,可自己配置
    22. },
    23. "files": [
    24. "lib"
    25. ],
    26. "lint-staged": {
    27. "react/**/*.{js,jsx}": [
    28. "npm run lint-staged:es"
    29. ],
    30. "react/**/*.scss": "stylelint --syntax scss"
    31. },
    32. "husky": {
    33. "hooks": {
    34. "pre-commit": "lint-staged"
    35. }
    36. },
    37. "devDependencies": {
    38. "babel-preset-env": "^1.7.0",
    39. "gulp": "^3.9.1",
    40. "gulp-babel": "^7.0.1",
    41. "through2": "^2.0.3"
    42. }
    43. }

    编写demo入口文件

    containers文件夹下创建Index文件,文件名为模块名大写+Index

    containers文件夹用于存放前端的页面。

    1. $ touch react/src/app/demo/containers/DEMOIndex.js
    1. // DEMOIndex.js
    2. import React from 'react';
    3. import { Route, Switch } from 'react-router-dom';
    4. import { inject } from 'mobx-react';
    5. import { asyncRouter, nomatch } from '@choerodon/boot';
    6. @inject('AppState')
    7. class DEMOIndex extends React.Component {
    8. render() {
    9. const { match, AppState } = this.props;
    10. return (
    11. <Switch>
    12. <Route path="*" component={nomatch} />
    13. </Switch>
    14. );
    15. }
    16. }
    17. export default DEMOIndex;

    启动及页面访问

    package.json 同级目录下,安装并启动。

    1. $ npm install
    2. $ npm run start

    当开始编译后会自动打开浏览器,通过 localhost:9090,查看页面效果。