我有一个使用 NextJs(和 React)和 mobx-state-tree(但可以是 context 或 redux)作为包管理器构建的应用程序。所有商店都是在一个名为 SMK(状态管理工具包)的 npm 包中创建和处理的,我创建它是为了使子商店在我的移动和 Web 应用程序中可重用。
这个怎么运作:
models
在 SMK上使用actions
和创建子存储并将views
其导出为模块。yarn add @my-repo/smk
使用.添加 SMK- 在我的应用程序中创建根存储并从 SMK 导入子存储作为根存储的子存储。
- 构建并启动应用程序,一切正常。
但是我需要在本地运行和发布 SMK 以使其更容易开发。我以前使用的解决方案是yalc。
使用 yalc 并在本地运行它是这个过程:
- 在 SMK 中,运行
yarn start
. (这会做nodemon --ignore src/index.ts -e js,ts,tsx,json --watch src/ --exec yalc push --scripts
) - 在 APP 中,运行
yalc add @my-repo/smk
. (这将添加一个依赖项,如"@my-repo/smk": "file:.yalc/@my-repo/smk"
)。 - 在APP中,运行
yarn build
,然后yarn start
瞧!一切都很完美,我在本地 SMK 上所做的任何更改都可以在 APP 上完美运行。
但是,当我将它作为 NextJs 的默认值运行时yarn dev
,next dev
它不起作用。
错误解释:由于我只在本地添加了setTestingState
and testingState
,所以说它不存在。
可能原因:快速刷新没有正确刷新缓存。
我试过了:
- 添加
// @refresh reset
强制它,但没有工作。 - 停止并启动应用程序。
- 构建,启动然后运行 dev。(适用于构建而不是开发)
yarn dev
使用和解决此问题的解决方案/解决方法是什么yalc
?