Taro: 【编译打包问题】去年建的taro项目,现在run dev:weapp报错,近期要上线了,祈求解决

Created on 18 Jul 2019  ·  9Comments  ·  Source: NervJS/taro

一、项目信息
1、创建时间:2018年年底
2、依赖
image
3、node:v10.7.0
4、npm:6.1.0

二、近期本地电脑做过的改动:更新了taro(taro update self),用于建新的taro项目。但更新后老项目出问题了,详情见三

三、出现的问题
1、run dev:weapp时提示Picker位置引入错误(几个月前开发的时候,是可以run dev:weapp成功的
image
2、将Picker位置按照提示更改后,run dev:weapp成功,但微信开发者工具报错,见问题3
3、在微信开发者工具的报错
image
4、同时部分组件功能出现问题(开发时是没问题的):提示事件对象e丢失
image

代码
image

image

四、祈求:项目是今年前几个月开发完后(功能测试都没问题)放着没动,最近有新的taro项目需求,更新本地taro后就出现了问题,请问我如何能恢复到原来到状态?如何回退本地taro版本(如果是taro更新导致的问题的话)

question

Most helpful comment

是 @tarojs/cli 更新版本导致的。

给你两个方案自己取舍

  1. 这个方案可以尽可能避免代码改动并且编译成功:

    1.1 在 package.jsondevDependencies 加入 ^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 这类的全局命令。

  2. 这个方案可以使你的项目使用当前全局 @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 命令或全局命令

All 9 comments

欢迎提交 Issue~

如果你提交的是 bug 报告,请务必遵循 Issue 模板的规范,尽量用简洁的语言描述你的问题,最好能提供一个稳定简单的复现。🙏🙏🙏

如果你的信息提供过于模糊或不足,或者已经其他 issue 已经存在相关内容,你的 issue 有可能会被关闭。

Good luck and happy coding~

本地依赖:修改你的 package.json 到你想要的版本,删除各种 lock 重新安装,
全局 CLI: npm i @tarojs/[email protected] -g

是 @tarojs/cli 更新版本导致的。

给你两个方案自己取舍

  1. 这个方案可以尽可能避免代码改动并且编译成功:

    1.1 在 package.jsondevDependencies 加入 ^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 这类的全局命令。

  2. 这个方案可以使你的项目使用当前全局 @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.1 在 package.jsondevDependencies 加入 ^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 这类的全局命令。

  2. 这个方案可以使你的项目使用当前全局 @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.1 在 package.jsondevDependencies 加入 ^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 这类的全局命令。

  2. 这个方案可以使你的项目使用当前全局 @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.jsondevDependencies 加入 ^1.2.0-beta.6 版本的 @tarojs/cli
image
2、按照报错提示将组件Picker引用位置更改

执行npm run dev:weapp 或 npm run build:weapp,还是报同样的错误(如有需要,我可以将项目发给您当作demo重现)

  1. Picker 问题你的解决方法是正确的
  2. 微信提示 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)
};
  1. 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
    image
  1. Picker 问题你的解决方法是正确的
  2. 微信提示 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)
};
  1. 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
    image

好的,谢谢您的回复,我去试试。🙏

Was this page helpful?
0 / 5 - 0 ratings

Related issues

awesomepan picture awesomepan  ·  26Comments

johnbian picture johnbian  ·  38Comments

luankefei picture luankefei  ·  30Comments

zhiqingchen picture zhiqingchen  ·  75Comments

Pines-Cheng picture Pines-Cheng  ·  60Comments