koa(nodejs)+webpack+typescript+react hooks+tests

397 阅读1分钟

1.package.json

{
  "scripts": {
    "test1": "echo 2",
    "pretest": "echo pretest",
    "client:dev": "scripty",
    "client:prod": "scripty"
  },
}

2.新建目录: /scripts/client/dev.sh/scripts/client/prod.sh

// /scripts/client/dev.sh :
webpack --mode development

// /scripts/client/prod.sh :
webpack --mode production

3.执行 npm run client:devnpm run client:prod (命令行执行 chmod -R +x scripts/ 把x加个执行权限)

4.webpack.config.js:

// 得到命令行参数
console.log(process.argv) 
// ['usr/local/bin/node','/User/yuanzhijia/Desktop/yd-system/node_modules/.bin/webpack', '--mode', 'development']
// 首先是node来执行的,
// bin/yd 
#!/usr/local/bin/node

const argv = require('yargs-parser')(process.argv.slice(2))
const _mode = argv.mode || 'development'
const _mergeConfig = require(`./config/webpack.${_mode}.js`)

const merge = require('webpack-merge')
const {join, resolve} from 'path'
module.export = {
    entry: {
        app: join(__dirname, './dist/assets/web/index.tsx')
    }
}

5.web文件夹目录划分

|web
    |assets: 静态资源
    |models: 所有的前端store
    |pages: 负责组装所有的components
    |components: 可以放任何东西
    |routes:前端路由
    |utils:工具方法
    |index.html
|server
    |app.ts 启动文件
    |controllers 路由
    |service
SPA.MPA融合的项目,server

6.ts工具 json2ts

chmod -x ./bin/yideng

- 前端工程化ssh, linux集群 
将来可以做linux的免密登陆 让远程的集群帮你编译别的模块
ssh 免密 11.22.33.44.14机器
11.22.33.44.14/d/sh
scp dist文件夹
package 主要负责编译主模块 其余的模块让package调度远程机器 仍给集群编译, 让数台机器帮你编译,极大提高编译速度,秒过
现在都是docker集群化部署
- node核心模式
- webpack的核心原理:loader ast
- fr函数式编程
- tsx: jsx width ts
- bff架构
- 错误监控 47:40