Closed gongchao closed 7 years ago
我也是这个疑难杂症!
+1
+1, 有没有哥们解决的,分享下呀
我也是这个错误 求解决
+1 求解决
+1
我也这个问题,怎么折腾都不行
我回退版本到0.7.0和0.7.6 也报错 但是错误还不一样 晕死。。。
+1
这个 bug 让我怀疑自己人生。问题的根源是,我们安装的 dva-cli > dva-ast > jscodeshift 的版本不对!
dva-ast 中使用了下面的代码:
Collection.fromPaths([], this);
Collection
是 jscodeshift 库提供的,dva-ast 的 package.json
指定 "jscodeshift": "^0.3.28"
,但 jscodeshift 最新版本是 0.3.32
,这里 Bug 就出现了。
虽然我发现了问题根源,但 dva-ast 和 jscodeshift 这两个库的源代码看得我云里雾里,望而生畏,杀虫的工作还是等高手吧。
我目前的解决方法是,将全局安装的 jscodeshift 回滚至 0.3.28
,初入江湖的我,人生还可以继续么?
Roll your global package jscodeshift back to v0.3.28
.
已经在 dva-ast 打了臭虫报告,应该很快可以修复的。
https://github.com/dvajs/dva-ast/issues/39
我已经找出 Bug 了,原因是 dva-ast 引用了 jscodeshift 的 Collection
,在 jscodeshift 新版本中这个 Collection
的位置发生了变化,从 'jscodeshift/dist/Collection';
变为了 'jscodeshift/src/Collection';
。
如果不想回滚 jscodeshift ,可以直接修改 dva-ast 的文件,将下面文件中的 'jscodeshift/dist/Collection';
改为 'jscodeshift/src/Collection';
即可:
不对呀 你在哪修改jscodeshift呀 怎么找到的呀
@heianqishizhisuiyuan
在全局包目录中,当安装 dva-cli 时依赖而来的。不同方式,如 npm
、 yarn
、 nvm
安装的目录的都不一样,你可以从报错中推出的,如:
$ dva g route product-list
/Users/gongchao/.nvm/versions/node/v7.4.0/lib/node_modules/dva-cli/bin/dva-generate
create routeComponent src/routes/ProductList.js, src/routes/ProductList.css
...
则 jscodeshift 应该在 /Users/gongchao/.nvm/versions/node/v7.4.0/lib/node_modules/jscodeshift
目录下。
@gongchao 谢谢大神 找到了 而且 确实把jscodeshift 改成0.3.28 版本后能用了 哈哈
root.findRouters(...).getRouterInfo is not a function 把jscodeshift 改成0.3.28 版本这个问题解决了,但是又出现一个报错 ; 大神们求解!
很明显的错误是由于文件已存在,删除 src/routes/Users.js
和 src/routes/Users.css
再试。
@wenris bug反馈这么多天了 还没修复啊
@lingfulu 请问你那个问题解决了吗?跟你报一样的错
#
@wenris 谢谢,更改文件之后已经可以使用了
真是奇怪了 ,bug为啥不修复 ,快速出个版本不就行了吗?感觉整个dva 所有项目都是拖拖拉拉的,roadhog也是这个样子,是不是没有精力搞了呢
代码已经修复了, 但是 npm 包还没有更新吧@sorrycc @ChrisFan see: https://github.com/dvajs/dva-ast/pull/41/files
dva-cli@0.7.9,已修复。
辛苦了,大神