Open DevanXU opened 3 years ago
Not a single piece of update in almost 4 weeks?
@midwayjs/cli 已提供 dev命令侦听额外文件变化功能,可以在你的项目中 main 文件夹中的 package.json 中修改dev script为:
cross-env ets && cross-env NODE_ENV=local midway-bin dev --ts --watchFile=../hello/src
可以先试试,这个功能我们觉得还不是很成熟。
可以先聪明,这个功能我们觉得还不太成熟。
请问可以监听多个文件夹吗
可以的,--watchFile=../hello/src,../another/src
可以先试试,这个功能我们觉得还不是很成熟。
一次修改要重启两次服务器(保存两次)才能生效。没有计划彻底解决这个问题么? @czy88840616
保存两次?是项目一次,组件一次?
这其实就等于一个 monorepo 里同时开发两个 node 库,这种其实不是很好。比较适合的是组件独立开发,测试,完成了之后才让应用使用。
保存两次?是项目一次,组件一次?
这其实就等于一个 monorepo 里同时开发两个 node 库,这种其实不是很好。比较适合的是组件独立开发,测试,完成了之后才让应用使用。
我觉得引入“组件开发”这个理念挺好的,如果能在“组件”跟“镜像”做无缝切换就更好了。e.g. 组件功能增加到一定程度可以快速拆分出单独的镜像进行部署,尤其是对于一些比较耗资源的请求。 组件开发热更新的问题如果没有彻底解决,这种开发模式估计比较难普及,太影响开发效率。
@czy88840616
采用lerna开发确实会有保存两次代码才生效的问题,之前还以为是我node版本太高了v16。
另外,通过control + c
退出进程之后,偶尔还会遇见开发端口进程没有被杀死,需要lsof -i:7001
查看进程号之后手动kill 12345
杀死。
带了编译这个就不是很好,尽可能组件独立开发吧,组件的设计就是和应用本身比较类似的。组件 + 轻量的框架(koa)+ 相对简单的项目 fixtures,理论上应该也可以 dev + test。
组件和应用开发之前怎么切换呢?例如:用 --type=component
的方式创建,但 yarn dev/test 都无法运行;反之,如果一开始用 --type=web
的方式创建,那后续要怎么样变成组件的方式集成呢?
组件和应用开发之前怎么切换呢?例如:用
--type=component
的方式创建,但 yarn dev/test 都无法运行;反之,如果一开始用--type=web
的方式创建,那后续要怎么样变成组件的方式集成呢?
组件只能说是应用的一部分代码,可以加入一个dev命令,用一个指定的框架去跑起来,比如组件里用了controller,你想测试就可以加一个web或者koa框架这个意思,默认组件脚手架里是没有加的。
根据官方文档说明,采用lerna的方式进行组件开发。
复现仓库:https://github.com/DevanXU/midway2-component-lerna-hot-update-issue
复现步骤
yarn install
yarn dev
http://localhost:7001/test/hello
,返回"hello world"hello2/src/service/bookService.ts
"hello world" -> "hello you"预期结果:程序进行热更新,刷新
http://localhost:7001/test/hello
会返回 "hello you" 实际结果:页面一直显示"hello world"