NervJS / taro

开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发微信/京东/百度/支付宝/字节跳动/ QQ 小程序/H5/React Native 等应用。 https://taro.zone/
https://docs.taro.zone/
Other
35.34k stars 4.77k forks source link

通过taro init创建的项目无法运行 #7143

Closed IMJacky closed 4 years ago

IMJacky commented 4 years ago

相关平台

微信小程序

复现仓库

https://github.com/NervJS/taro 小程序基础库: 2.11.2 使用框架: Vue3

复现步骤

taro init,选择的是vuex模板

期望结果

能运行就行呀~

实际结果

VUE_OPTIONS_API is not defined Cannot read property '$forceUpdate' of undefined

环境信息

Taro v3.0.5

  Taro CLI 3.0.5 environment info:
    System:
      OS: Windows 10
    Binaries:
      Node: 12.13.0 - D:\Program Files\nodejs\node.EXE
      Yarn: 1.19.1 - D:\Program Files (x86)\Yarn\bin\yarn.CMD
      npm: 6.12.0 - D:\Program Files\nodejs\npm.CMD
IMJacky commented 4 years ago

微信图片_20200723185402

Chen-jj commented 4 years ago

@IMJacky 提供一下创建项目的详细选项

IMJacky commented 4 years ago

麻蛋,图片传不上去,我直接说吧

vue3 no 无 vue3-vuex

就是这样创建的,然后运行就报那个错,奇怪,不知道是不是我电脑问题,vue2没问题

Chen-jj commented 4 years ago

关闭了?

IMJacky commented 4 years ago

额,我寻思着用vue2学一学吧。我也是刚知道这个taro,感觉挺不错的,我用vue3就是个错误的选择~~ 我怕你们没时间处理这个issue,所以就关闭了。 你们抽空看下就行了。 感谢~

Chen-jj commented 4 years ago

先开着吧,晚点看看

JasonJie commented 4 years ago

i have same problem

👽 Taro v3.0.5

Taro CLI 3.0.5 environment info: System: OS: macOS 10.15.6 Shell: 5.7.1 - /bin/zsh Binaries: Node: 12.18.2 - ~/.nvm/versions/node/v12.18.2/bin/node Yarn: 1.22.4 - ~/.yarn/bin/yarn npm: 6.14.5 - ~/.nvm/versions/node/v12.18.2/bin/npm npmPackages: @tarojs/components: 3.0.5 => 3.0.5 @tarojs/mini-runner: 3.0.5 => 3.0.5 @tarojs/runtime: 3.0.5 => 3.0.5 @tarojs/taro: 3.0.5 => 3.0.5 @tarojs/webpack-runner: 3.0.5 => 3.0.5 babel-preset-taro: 3.0.5 => 3.0.5 eslint-config-taro: 3.0.5 => 3.0.5

keyding commented 4 years ago

确实有这个问题。 微信模拟器的报错信息:

1

` 👽 Taro v3.0.5

Taro CLI 3.0.5 environment info: System: OS: macOS 10.16 Shell: 5.8 - /bin/zsh Binaries: Node: 12.11.1 - /usr/local/bin/node Yarn: 1.22.4 - /usr/local/bin/yarn npm: 6.14.4 - /usr/local/bin/npm npmPackages: @tarojs/components: 3.0.5 => 3.0.5 @tarojs/mini-runner: 3.0.5 => 3.0.5 @tarojs/runtime: 3.0.5 => 3.0.5 @tarojs/taro: 3.0.5 => 3.0.5 @tarojs/webpack-runner: 3.0.5 => 3.0.5 babel-preset-taro: 3.0.5 => 3.0.5 eslint-config-taro: 3.0.5 => 3.0.5 npmGlobalPackages: typescript: 3.6.4 `

JackYangFM commented 4 years ago

安装步骤:

? 请输入项目介绍! demo ? 请选择框架 Vue3 ? 是否需要使用 TypeScript ? No ? 请选择 CSS 预处理器(Sass/Less/Stylus) Stylus ? 请选择模板 默认模板

我也遇到相同的问题:

MiniProgramError VUE_OPTIONS_API is not defined ReferenceError: VUE_OPTIONS_API is not defined

MiniProgramError Cannot read property '$forceUpdate' of undefined

👽 Taro v3.0.5

Taro CLI 3.0.5 environment info: System: OS: macOS 10.15.5 Shell: 3.2.57 - /bin/bash Binaries: Node: 12.18.2 - ~/.nvm/versions/node/v12.18.2/bin/node Yarn: 1.10.1 - /usr/local/bin/yarn npm: 6.14.5 - ~/.nvm/versions/node/v12.18.2/bin/npm npmPackages: @tarojs/components: 3.0.5 => 3.0.5 @tarojs/mini-runner: 3.0.5 => 3.0.5 @tarojs/runtime: 3.0.5 => 3.0.5 @tarojs/taro: 3.0.5 => 3.0.5 @tarojs/webpack-runner: 3.0.5 => 3.0.5 babel-preset-taro: 3.0.5 => 3.0.5 eslint-config-taro: 3.0.5 => 3.0.5

lavapapa commented 4 years ago

我也有同样的问题。但是绕开了。 我在github上找到了一个taro3 vue3 的几乎是空白的项目,创建时间是7月11日,克隆下来安装依赖并dev:weapp 竟能成功运行。 我怀疑是创建新项目附带安装的依赖更新了,出现了原来没有的冲突。 麻烦官方尽快排查一下吧~

Chen-jj commented 4 years ago

vue 3.0.0-rc.3 增加了两个编译时配置:__VUE_OPTIONS_API____VUE_PROD_DEVTOOLS__,适当地配置它们能提高 tree shaking 的效果。https://github.com/vuejs/vue-next/blob/master/packages/vue/README.md#bundler-build-feature-flags

因为小程序不允许使用未定义的变量,所以目前 Taro 使用 vue 3.0.0-rc.3+ 会报错。

Taro 3.0.6 会进行修复,使用 webpack.DefinePlugin 对它们进行编译时替换:

chain
    .plugin('defined')
    .use(webpack.DefinePlugin, [{
      __VUE_OPTIONS_API__: JSON.stringify(true),
      __VUE_PROD_DEVTOOLS__: JSON.stringify(false)
    }])

大家可以关注下 vue3 的这两个编译时变量,如要在 Taro 中修改默认值,使用 webpackChain 改一下 webpack.DefinePlugin 的参数即可。

keyding commented 4 years ago

image

config/index.js 中配置,成功运行了。感谢~