DAY3 - 开始写程序吧,建立 monorepo

前几篇讲的大多都是想法与概念,都还没有讲到跟程序面有关的东西。接下来进入工程的世界了。

在聊到想法与构想的时候,可以非常天马行空,什麽样的问题跟什麽样的解决方案都有可能,有可能很棒也有可能很烂。不过不管怎麽样,有自己想过的问题才是自己的问题,都是很好的过程,最终的收获只有自己才会知道。

但是进入工程端的世界之後,就比较没有办法天马行空了,毕竟程序写错就是写错,没有任何一点模糊或是想像的空间。甚至可以说,在写side project的时候,会有一点先射箭再画靶的情形。因为自己会的技术有限,想法可实现与否,最大的一部分限制就在自己会多少。

因此,加强技术能力不一定会成功,但是加强技术能力可以加大自己的做梦空间。那麽就开始加大自己的做梦空间吧

使用Nx建立monorepo

什麽是monorepo

monorepo是一种管理程序码的方法,可以将所有的应用程序、API还有共用的函示库都在同一个repo管理。在同一个专案管理的好处是,可以让各个module或interface独立出来,给不同的应用程序重复使用,而且不用再去管理从npm上面下载套件後的版本与相依的问题。可以大大减少管理的时间,专注在开发上面

https://ithelp.ithome.com.tw/upload/images/20210918/20120107vzXSBXPFvb.png

什麽是Nx

Nx是一个建构monorepo的工具,他可以帮你建构与整合好整个monorepo的架构,让你可以一键建立好整个架构,除此之外,还整合了热门的测试工具,像是cypress、jest等等,以往要设定这些工具都还要繁复的设定步骤,现在完全零设定

开始建立monorepo

建立的指令很简单,只要输入:

npx create-nx-workspace

接下来nx cli 就会问你要建立什麽样的专案,有各式各样的框架可以选择,像是Angular、React、express、nest等等

因为笔者熟悉的前端框架是Angular、後端框架是Nestjs,因此本系列文章会以这两个框架作为示范,但是大多数就是讲想法或概念而已,就算不懂也没关系,可以用自己熟悉的框架去做就好

https://ithelp.ithome.com.tw/upload/images/20210918/20120107tjUb3CqzZD.png
然後就会问你一些设定的问题,就选择自己喜欢习惯的设定吧

https://ithelp.ithome.com.tw/upload/images/20210918/201201075sOMLXfY9C.png

完成之後,就可以打开vs code跑起来看看

分别启动终端机个别输入以下指令:

nx run api:serve // 启动 nestjs 後端
ng serve // 启动 angular 前端

可以看到一下画面:
https://ithelp.ithome.com.tw/upload/images/20210918/20120107Sk0TPJUf75.png

打开 app.service.ts ,试着修改文字,看看是否有变化

import { Injectable } from '@nestjs/common';
import { Message } from '@hello-nx/api-interfaces';

@Injectable()
export class AppService {
  getData(): Message {
    return { message: 'Welcome to api!' }; // 试着修改文字
  }
}

将文字修改为:

{ message: '欢迎来到2021年铁人赛' }

修改完之後储存,再打开画面

https://ithelp.ithome.com.tw/upload/images/20210918/201201075jKdUlbwms.png

这样就成功建立Nx专案罗,明天开始介绍什麽是Nx


<<:  [Day18] CH10:排序大家族——合并排序法

>>:  D3 - 今天点个 String Methods 套餐

[Day_27]函式与递回_(6)

关键字引数(keyword arguments) 关键字引数(函式输入变数的前方使用「**」)会将函...

失败了 还是可以进行更新

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2...

实施零信任架构以防止横向移动,XACML最不可能进行身份验证

-示例 XACML 实现 XACML 旨在支持授权,而不是身份验证。 XACML 代表“可扩展访问...

DAY1 筑个前端毛胚屋

嗨我是稚鸟。这是一个for比菜鸟还菜的幼鸟前端指南。 幼鸟品种说明:学过一种程序语言,但对前端没啥概...

Day 26 测试 React 元件:使用 React Testing Library 体验 Test Driven Development (TDD) - 6

前面几天我们已经用 TDD 的方式完成了 <Editor /> 元件,但不要忘了 TDD...