今天使用nom run autod 更新了项目的依赖后,所有的controller层的单元测试都不能通过了,连最基础的test/app/controller/home.test.js 也是。
然后新开了一个项, run test 也是一样的错误。
报错 TypeError: Cannot set property router of #<Object> which has only a getter
请使用
egg-init --type=simple bug创建,并上传到你的 GitHub 仓库
$ npm i egg-init -g
$ egg-init egg-example --type=simple
$ cd egg-example
$ npm I
$ npm run test

已经回滚了,重新安装依赖重试一下。
请问是哪个包,哪个版本的问题?我也遇到了同样的问题
"egg": "2.0.0"
"egg-alinode": "^2.0.1"
alinoe: 4.4.2
node: 10.5.0
不要锁版本,删除整个依赖目录重装即可
好的,确实是锁版本了
Cannot set property router of #
@JackChius 把 yarn.lock 删掉,如果没有 yarn.lock,查一下你 package.json 里的 egg 依赖版本是不是写死了
@whxaxes 还原package.json 的"^"后问题得到解决,感谢大侠
Egg 的依赖,请坚持用 ^,我们保证会严格遵循 Semver 规则。
这个是啥问题,我这边也遇到了
以上操作全试了,均无效
提供最小可复现仓库
提供最小可复现仓库是指?
node version v10.16.3
egg version 2.9.0
rm -rf node_modules
npm i --no-package-lock
删掉package-lock.json或执行以上命令可以正常运行了
rm -rf node_modules
npm i --no-package-lock
删掉package-lock.json或执行以上命令可以正常运行了
解决了,先看package.json egg的依赖是否都是 ^ ,然后不要锁定依赖,重新安装即可
$ rm -rf node_modules yarn.lock package-lock.json
$ npm i --no-package-lock
Most helpful comment
Egg 的依赖,请坚持用
^,我们保证会严格遵循 Semver 规则。