请问在创建monorepo时如何进行本地开发调试,我了解到创建monorepo项目的两种方式为pnpm、npm的workspace。
我创建了一个示例代码库 https://github.com/jervainy/demo-monorepo.git,
有两个工程,lerna-workspace-demo 采用npm workspace方式创建的monorepo项目;pnpm-workspace-demo 采用pnpm创建的monorepo项目。这两个项目中pkg0引用utils模块,采用vite打包。
当我将package.json中的main、module指向为lib/main.js时,utils中修改了内容后在pkg0中能马上刷新访问,但这会导致打包的文件不安全; 如果指向dist文件则不能实现热更新。如果将main指定为dist,怎样才能实现热更新?
开源项目tiptap https://github.com/ueberdosis/tiptap.git是采用的npm workspace创建的monorepo项目,package.json中main指向的dist文件,能进行热更新,采用的rollup打包; 请问为什么tiptap能实现热更新
我看过采用pnpm的项目,例如nuxt、vue3等,使用pnpm创建项目后同时也会在package.json中声明workspace,这是为什么,pnpm创建的monorepo项目如何实现热更新
main
指向dist
时如何实现热更新当你在一个monorepo项目中工作,并希望当utils
模块的内容改变时,pkg0
能够立即反映这些变化,同时确保打包文件的安全性(即不直接指向源码),你通常需要配置一个热更新(Hot Module Replacement, HMR)的环境。
对于Vite或Webpack这样的打包工具,它们通常内置了HMR功能。但是,为了使HMR工作,你需要确保:
vite serve
或Webpack的webpack-dev-server
)需要支持HMR。对于你提到的main
指向dist
的问题,理想情况下,你应该在devDependencies
中包含构建和运行依赖,并且在scripts
中定义一个开发脚本(如start
),该脚本首先运行构建命令(如果需要的话),然后启动一个支持HMR的开发服务器。这样,当你修改utils
模块时,开发服务器会重新构建pkg0
(如果需要的话),并应用HMR。
tiptap能实现热更新很可能是因为它们配置了打包工具(可能是Rollup或其他支持HMR的工具)来支持HMR,并且它们的开发服务器也支持HMR。此外,tiptap可能使用了某种形式的代码分割和模块热替换策略,以确保只有更改的模块被重新加载。
package.json
中声明workspacepnpm和npm workspaces都使用符号链接来管理monorepo中的依赖关系。在pnpm中,你通常会在根目录的pnpm-workspace.yaml
文件中定义workspace,但你也可以在package.json
中通过workspaces
字段来定义它。这样做的好处是与其他工具(如npm)的兼容性更好,并且提供了一种更明确的方式来声明你的monorepo结构。
对于热更新,无论是使用pnpm还是npm workspaces,关键都是配置你的打包工具和开发服务器来支持HMR。pnpm本身并不直接提供热更新功能,但它通过创建符号链接来支持monorepo中的包之间的依赖关系,这有助于HMR工作。
package.json
中定义开发脚本,以便轻松地启动支持HMR的开发服务器。package.json
中明确声明workspace,以提高与其他工具的兼容性。pnpm的monorepo问题, packages: 'main' 'web/**' 'common' 'common2' common的package.json 在main文件里面pnpm -F main add common 但是添加的包,不是本地的,这个是什么问题 改动common的version版本号,子项目不能以0开头的版本号, pnpm -F main add @project/com
场景如下:有三个项目A,B,C,这三个项目的关系如下图 A是一个核心项目,其最终会使用Electron打成一个独立的项目A.EXE B项目是A项目的超集,在A的基础上会增加一部分功能,最终是一个B.WEB项目 C项目是B项目的超级,在B的基础上也会增加一部分功能,最终也会使用Electron打成一个独立的项目C.EXE 经过一番调研,前端打算使用pnpm构建Monorepo架构,初步设想如下: c
pnpm 怎么把本地项目里的一个工作空间安装到全局? 目录结构 尝试过以下命令都不行: pnpm add ./scripts -g pnpm add @yuduo/scripts -g 谢谢各位大佬!
本文向大家介绍python用什么编辑器进行项目开发,包括了python用什么编辑器进行项目开发的使用技巧和注意事项,需要的朋友参考一下 工欲善其事必先利其器,估计大部分的pythoner都是从python IDE开始了python之路。有很多的python IDE工具可以用,但是要从中选出一个用着趁手的IDE却是一项艰巨的任务。 你可以用最基本的文本编辑器来开始学习python编程,也可以用一个完
问题内容: 有什么办法可以使用Cloud Spaner进行本地开发吗?我已经浏览了文档和CLI工具,似乎没有任何东西。或者,有人可以建议一个与读取行为类似的SQL数据库(不确定如何处理写入)吗? 编辑:为澄清起见,我正在寻找一种数据库,该数据库具有与Cloud Spanner相同的SQL风格,因此我可以在本地进行开发。确切的性能特征不如API和一致性行为那么重要。我认为蟑螂不符合这些要求吗? 问题
本文向大家介绍如何进行微信公众号开发的本地调试的方法,包括了如何进行微信公众号开发的本地调试的方法的使用技巧和注意事项,需要的朋友参考一下 微信团队为广大的开发者提供了一个测试账号。该帐号无需公众账号,快速申请接口测试,直接体验和测试公众平台所有高级接口。这么好用的功能,只需要要你有一个手机,手机上安装了一个微信即可。 地址:https://mp.weixin.qq.com/debug/cgi-b