一、项目信息
1、创建时间:2018年年底
2、依赖

3、node:v10.7.0
4、npm:6.1.0
二、近期本地电脑做过的改动:更新了taro(taro update self),用于建新的taro项目。但更新后老项目出问题了,详情见三
三、出现的问题
1、run dev:weapp时提示Picker位置引入错误(几个月前开发的时候,是可以run dev:weapp成功的)

2、将Picker位置按照提示更改后,run dev:weapp成功,但微信开发者工具报错,见问题3
3、在微信开发者工具的报错

4、同时部分组件功能出现问题(开发时是没问题的):提示事件对象e丢失

代码


四、祈求:项目是今年前几个月开发完后(功能测试都没问题)放着没动,最近有新的taro项目需求,更新本地taro后就出现了问题,请问我如何能恢复到原来到状态?如何回退本地taro版本(如果是taro更新导致的问题的话)
欢迎提交 Issue~
如果你提交的是 bug 报告,请务必遵循 Issue 模板的规范,尽量用简洁的语言描述你的问题,最好能提供一个稳定简单的复现。🙏🙏🙏
如果你的信息提供过于模糊或不足,或者已经其他 issue 已经存在相关内容,你的 issue 有可能会被关闭。
Good luck and happy coding~
本地依赖:修改你的 package.json 到你想要的版本,删除各种 lock 重新安装,
全局 CLI: npm i @tarojs/[email protected] -g
是 @tarojs/cli 更新版本导致的。
给你两个方案自己取舍
这个方案可以尽可能避免代码改动并且编译成功:
1.1 在 package.json 的 devDependencies 加入 ^1.2.0-beta.6 版本的 @tarojs/cli,结果如下:
"devDependencies": {
"@tarojs/cli": "^1.2.0-beta.6",
}
1.2 之后删除 node_modules 文件夹,并使用 yarn/npm 重新安装
1.3 之后正常使用 yarn build:weapp/npm build:weapp 命令,切记不要使用 taro build --type weapp 这类的全局命令。
这个方案可以使你的项目使用当前全局 @tarojs/cli 并且使用最新的依赖:
2.1 在项目根目录下,使用 taro update project 命令,在运行之前,确保你全局安装的 @tarojs/cli 版本是 1.3.9
2.2 之后删除 node_modules 文件夹,并使用 yarn/npm 重新安装
2.3 之后正常使用 yarn build:weapp/npm build:weapp 命令或全局命令
本地依赖:修改你的 package.json 到你想要的版本,删除各种 lock 重新安装,
全局 CLI:npm i @tarojs/[email protected] -g
谢谢您,🙏
是 @tarojs/cli 更新版本导致的。
给你两个方案自己取舍
这个方案可以尽可能避免代码改动并且编译成功:
1.1 在package.json的devDependencies加入 ^1.2.0-beta.6 版本的 @tarojs/cli,结果如下:"devDependencies": { "@tarojs/cli": "^1.2.0-beta.6", }1.2 之后删除 node_modules 文件夹,并使用 yarn/npm 重新安装
1.3 之后正常使用 yarn build:weapp/npm build:weapp 命令,切记不要使用 taro build --type weapp 这类的全局命令。- 这个方案可以使你的项目使用当前全局 @tarojs/cli 并且使用最新的依赖:
2.1 在项目根目录下,使用 taro update project 命令,在运行之前,确保你全局安装的 @tarojs/cli 版本是 1.3.9
2.2 之后删除 node_modules 文件夹,并使用 yarn/npm 重新安装
2.3 之后正常使用 yarn build:weapp/npm build:weapp 命令或全局命令
谢谢您,🙏
Hello~
您的问题楼上已经有了确切的回答,如果没有更多的问题这个 issue 将在 15 天后被自动关闭。
如果您在这 15 天中更新更多信息自动关闭的流程会自动取消,如有其他问题也可以发起新的 Issue。
Good luck and happy coding~
是 @tarojs/cli 更新版本导致的。
给你两个方案自己取舍
这个方案可以尽可能避免代码改动并且编译成功:
1.1 在package.json的devDependencies加入 ^1.2.0-beta.6 版本的 @tarojs/cli,结果如下:"devDependencies": { "@tarojs/cli": "^1.2.0-beta.6", }1.2 之后删除 node_modules 文件夹,并使用 yarn/npm 重新安装
1.3 之后正常使用 yarn build:weapp/npm build:weapp 命令,切记不要使用 taro build --type weapp 这类的全局命令。- 这个方案可以使你的项目使用当前全局 @tarojs/cli 并且使用最新的依赖:
2.1 在项目根目录下,使用 taro update project 命令,在运行之前,确保你全局安装的 @tarojs/cli 版本是 1.3.9
2.2 之后删除 node_modules 文件夹,并使用 yarn/npm 重新安装
2.3 之后正常使用 yarn build:weapp/npm build:weapp 命令或全局命令
根据您的建议,我做了如下改动,但还是出现一样的问题(如有需要,我可以将项目发给您当作demo重现):
改动:
1、在 package.json 的 devDependencies 加入 ^1.2.0-beta.6 版本的 @tarojs/cli

2、按照报错提示将组件Picker引用位置更改
执行npm run dev:weapp 或 npm run build:weapp,还是报同样的错误(如有需要,我可以将项目发给您当作demo重现)
export default class YourComponent extends Taro.Component<Props, {}> {
// your code...
}
YourComponent.defaultProps = {
propA: '', // 假设 propA 是字符串类型 (避免 propA of undefined)
propB: [], // 假设 propB 是一个数组 (避免 length of undefined)
};

- Picker 问题你的解决方法是正确的
- 微信提示 length undefined 需要你对你的组件进行一些改动,添加 defaulttProps
export default class YourComponent extends Taro.Component<Props, {}> { // your code... } YourComponent.defaultProps = { propA: '', // 假设 propA 是字符串类型 (避免 propA of undefined) propB: [], // 假设 propB 是一个数组 (避免 length of undefined) };
- Event target 丢失可能需要更详细的描述和代码片段,建议先重新阅读一下这个文档 https://nervjs.github.io/taro/docs/event.html#%E5%90%91%E4%BA%8B%E4%BB%B6%E5%A4%84%E7%90%86%E7%A8%8B%E5%BA%8F%E4%BC%A0%E9%80%92%E5%8F%82%E6%95%B0
好的,谢谢您的回复,我去试试。🙏
Most helpful comment
是 @tarojs/cli 更新版本导致的。
给你两个方案自己取舍
这个方案可以尽可能避免代码改动并且编译成功:
1.1 在
package.json的devDependencies加入 ^1.2.0-beta.6 版本的 @tarojs/cli,结果如下:1.2 之后删除 node_modules 文件夹,并使用 yarn/npm 重新安装
1.3 之后正常使用 yarn build:weapp/npm build:weapp 命令,切记不要使用 taro build --type weapp 这类的全局命令。
这个方案可以使你的项目使用当前全局 @tarojs/cli 并且使用最新的依赖:
2.1 在项目根目录下,使用 taro update project 命令,在运行之前,确保你全局安装的 @tarojs/cli 版本是 1.3.9
2.2 之后删除 node_modules 文件夹,并使用 yarn/npm 重新安装
2.3 之后正常使用 yarn build:weapp/npm build:weapp 命令或全局命令