Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

微信小程序转换 taro 后 yarn dev:weapp 大量报错组件编译失败 #2920

Closed
ruoduan-hub opened this issue Apr 29, 2019 · 4 comments

Comments

@ruoduan-hub
Copy link

问题描述
dev 报错如下: 错误信息较多,请问是某些组件不能平滑过渡的问题吗?
原项目中引用了某些静态资源

复现步骤

[或者可以直接贴源代码,能贴文字就不要截图]

yarn run v1.15.2
$ npm run build:weapp -- --watch

> taroConvert@1.0.0 build:weapp H:\test\wxapp\miniprogram\taroConvert
> taro build --type weapp "--watch"

 Taro v1.2.26

开始编译项目 taroConvert
生成  工具配置  dist/project.config.json
编译  入口文件  src/app.js
拷贝  NPM文件   dist/npm/@tarojs/taro-weapp/dist/index.js
拷贝  NPM文件   dist/npm/@tarojs/taro-weapp/index.js
生成  入口配置  dist/app.json
生成  入口文件  dist/app.js
生成  依赖文件  dist/apis/login.js
生成  依赖文件  dist/apis/axios.js
生成  入口样式  dist/app.wxss
编译  所有页面
编译  页面文件  src/pages/login/login
拷贝  NPM文件   dist/npm/@tarojs/with-weapp/dist/index.js
拷贝  NPM文件   dist/npm/@tarojs/with-weapp/index.js
编译  页面文件  src/pages/home/home
编译  页面文件  src/pages/total-sale/total-sale
编译  页面文件  src/pages/data-ranking/data-ranking
编译  页面文件  src/pages/list/list
编译  页面文件  src/pages/shop-overdue/shop-overdue
编译  页面文件  src/pages/area-overdue/area-overdue
编译  页面文件  src/pages/station-overdue/station-overdue
编译  页面文件  src/pages/customer-info/customer-info
生成  依赖文件  dist/utils/wx.js
生成  页面配置  dist/pages/login/login.json
生成  页面逻辑  dist/pages/login/login.js
生成  页面模板  dist/pages/login/login.wxml
生成  页面样式  dist/pages/login/login.wxss
编译  组件文件  src/components/table/table.js
编译  组件文件  src/ec-canvas/ec-canvas.js
错误  组件编译  组件src/ec-canvas/ec-canvas.js编译失败!
Error: 组件事件传参只能在使用匿名箭头函数,或使用类作用域下的确切引用(this.handleXX || this.props.handleXX),或使用 bind。
-----
  125 |         canvasId={canvasId}
  126 |         onInit={this.init}
> 127 |         onTouchStart={ec.disableTouch ? '' : 'touchStart'}
      |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  128 |         onTouchMove={ec.disableTouch ? '' : 'touchMove'}
  129 |         onTouchEnd={ec.disableTouch ? '' : 'touchEnd'}
  130 |       />
    at Object.codeFrameError (C:\Users\lp\AppData\Local\Yarn\Data\global\node_modules\@tarojs\transformer-wx\lib\src\utils.js:317:12)
    at JSXExpressionContainer (C:\Users\lp\AppData\Local\Yarn\Data\global\node_modules\@tarojs\transformer-wx\lib\src\class.js:390:39)
    at NodePath._call (C:\Users\lp\AppData\Local\Yarn\Data\global\node_modules\babel-traverse\lib\path\context.js:76:18)
    at NodePath.call (C:\Users\lp\AppData\Local\Yarn\Data\global\node_modules\babel-traverse\lib\path\context.js:48:17)
    at NodePath.visit (C:\Users\lp\AppData\Local\Yarn\Data\global\node_modules\babel-traverse\lib\path\context.js:105:12)
    at TraversalContext.visitQueue (C:\Users\lp\AppData\Local\Yarn\Data\global\node_modules\babel-traverse\lib\context.js:150:16)
    at TraversalContext.visitSingle (C:\Users\lp\AppData\Local\Yarn\Data\global\node_modules\babel-traverse\lib\context.js:108:19)
    at TraversalContext.visit (C:\Users\lp\AppData\Local\Yarn\Data\global\node_modules\babel-traverse\lib\context.js:192:19)
    at Function.traverse.node (C:\Users\lp\AppData\Local\Yarn\Data\global\node_modules\babel-traverse\lib\index.js:114:17)
    at NodePath.visit (C:\Users\lp\AppData\Local\Yarn\Data\global\node_modules\babel-traverse\lib\path\context.js:115:19)
编译  组件文件  src/components/table/table.js
编译  组件文件  src/components/filter/filter.js
编译  组件文件  src/components/ranking-filter/ranking-filter.js
编译  组件文件  src/components/table/table.js
编译  组件文件  src/components/none-data/none-data.js
编译  组件文件  src/components/detail-list/detail-list.js
编译  组件文件  src/components/none-data/none-data.js
编译  组件文件  src/components/overdue-filter/overdue-filter.js
编译  组件文件  src/components/overdue-list/overdue-list.js
编译  组件文件  src/components/overdue-list/overdue-list.js
编译  组件文件  src/components/overdue-list/overdue-list.js
生成  页面配置  dist/pages/customer-info/customer-info.json
生成  页面逻辑  dist/pages/customer-info/customer-info.js
生成  页面模板  dist/pages/customer-info/customer-info.wxml
生成  页面样式  dist/pages/customer-info/customer-info.wxss
生成  组件配置  dist/dist/components/table/table.json
生成  组件逻辑  dist/dist/components/table/table.js
生成  组件模板  dist/dist/components/table/table.wxml
生成  组件样式  dist/dist/components/table/table.wxss
生成  组件配置  dist/dist/components/table/table.json
生成  组件逻辑  dist/dist/components/table/table.js
生成  组件模板  dist/dist/components/table/table.wxml
生成  组件样式  dist/dist/components/table/table.wxss
生成  组件配置  dist/dist/components/filter/filter.json
生成  组件逻辑  dist/dist/components/filter/filter.js
生成  组件模板  dist/dist/components/filter/filter.wxml
生成  组件样式  dist/dist/components/filter/filter.wxss
生成  组件配置  dist/dist/components/ranking-filter/ranking-filter.json
生成  组件逻辑  dist/dist/components/ranking-filter/ranking-filter.js
生成  组件模板  dist/dist/components/ranking-filter/ranking-filter.wxml
生成  组件样式  dist/dist/components/ranking-filter/ranking-filter.wxss
生成  组件配置  dist/dist/components/table/table.json
生成  组件逻辑  dist/dist/components/table/table.js
生成  组件模板  dist/dist/components/table/table.wxml
生成  组件样式  dist/dist/components/table/table.wxss
生成  组件配置  dist/dist/components/none-data/none-data.json
生成  组件逻辑  dist/dist/components/none-data/none-data.js
生成  组件模板  dist/dist/components/none-data/none-data.wxml
生成  组件样式  dist/dist/components/none-data/none-data.wxss
生成  组件配置  dist/dist/components/detail-list/detail-list.json
生成  组件逻辑  dist/dist/components/detail-list/detail-list.js
生成  组件模板  dist/dist/components/detail-list/detail-list.wxml
生成  组件样式  dist/dist/components/detail-list/detail-list.wxss
生成  组件配置  dist/dist/components/none-data/none-data.json
生成  组件逻辑  dist/dist/components/none-data/none-data.js
生成  组件模板  dist/dist/components/none-data/none-data.wxml
生成  组件样式  dist/dist/components/none-data/none-data.wxss
生成  组件配置  dist/dist/components/overdue-filter/overdue-filter.json
生成  组件逻辑  dist/dist/components/overdue-filter/overdue-filter.js
生成  组件模板  dist/dist/components/overdue-filter/overdue-filter.wxml
生成  组件样式  dist/dist/components/overdue-filter/overdue-filter.wxss
编译  组件文件  static/iview/progress/index
编译  组件文件  static/iview/progress/index
编译  组件文件  static/iview/progress/index
生成  依赖文件  dist/apis/overdue.js
错误  组件编译  组件src/components/overdue-list/overdue-list.js编译失败!
{ Error: ENOENT: no such file or directory, open 'H:\test\wxapp\miniprogram\taroConvert\static\iview\progress\index'
    at Object.openSync (fs.js:438:3)
    at Object.readFileSync (fs.js:343:35)
    at buildSingleComponent (C:\Users\lp\AppData\Local\Yarn\Data\global\node_modules\@tarojs\cli\src\weapp.js:1746:31)
    at Promise.all.componentPathList.map.componentObj (C:\Users\lp\AppData\Local\Yarn\Data\global\node_modules\@tarojs\cli\src\weapp.js:1679:60)
    at Array.map (<anonymous>)
    at buildDepComponents (C:\Users\lp\AppData\Local\Yarn\Data\global\node_modules\@tarojs\cli\src\weapp.js:1679:40)
    at buildSingleComponent (C:\Users\lp\AppData\Local\Yarn\Data\global\node_modules\@tarojs\cli\src\weapp.js:1845:40)
    at process._tickCallback (internal/process/next_tick.js:68:7)
    at Function.Module.runMain (internal/modules/cjs/loader.js:757:11)
    at startup (internal/bootstrap/node.js:283:19)
  errno: -4058,
  syscall: 'open',
  code: 'ENOENT',
  path:
   'H:\\test\\wxapp\\miniprogram\\taroConvert\\static\\iview\\progress\\index' }
错误  组件编译  组件src/components/overdue-list/overdue-list.js编译失败!
{ Error: ENOENT: no such file or directory, open 'H:\test\wxapp\miniprogram\taroConvert\static\iview\progress\index'
    at Object.openSync (fs.js:438:3)
    at Object.readFileSync (fs.js:343:35)
    at buildSingleComponent (C:\Users\lp\AppData\Local\Yarn\Data\global\node_modules\@tarojs\cli\src\weapp.js:1746:31)
    at Promise.all.componentPathList.map.componentObj (C:\Users\lp\AppData\Local\Yarn\Data\global\node_modules\@tarojs\cli\src\weapp.js:1679:60)
    at Array.map (<anonymous>)
    at buildDepComponents (C:\Users\lp\AppData\Local\Yarn\Data\global\node_modules\@tarojs\cli\src\weapp.js:1679:40)
    at buildSingleComponent (C:\Users\lp\AppData\Local\Yarn\Data\global\node_modules\@tarojs\cli\src\weapp.js:1845:40)
    at process._tickCallback (internal/process/next_tick.js:68:7)
    at Function.Module.runMain (internal/modules/cjs/loader.js:757:11)
    at startup (internal/bootstrap/node.js:283:19)
  errno: -4058,
  syscall: 'open',
  code: 'ENOENT',
  path:
   'H:\\test\\wxapp\\miniprogram\\taroConvert\\static\\iview\\progress\\index' }
错误  组件编译  组件src/components/overdue-list/overdue-list.js编译失败!
{ Error: ENOENT: no such file or directory, open 'H:\test\wxapp\miniprogram\taroConvert\static\iview\progress\index'
    at Object.openSync (fs.js:438:3)
    at Object.readFileSync (fs.js:343:35)
    at buildSingleComponent (C:\Users\lp\AppData\Local\Yarn\Data\global\node_modules\@tarojs\cli\src\weapp.js:1746:31)
    at Promise.all.componentPathList.map.componentObj (C:\Users\lp\AppData\Local\Yarn\Data\global\node_modules\@tarojs\cli\src\weapp.js:1679:60)
    at Array.map (<anonymous>)
    at buildDepComponents (C:\Users\lp\AppData\Local\Yarn\Data\global\node_modules\@tarojs\cli\src\weapp.js:1679:40)
    at buildSingleComponent (C:\Users\lp\AppData\Local\Yarn\Data\global\node_modules\@tarojs\cli\src\weapp.js:1845:40)
    at process._tickCallback (internal/process/next_tick.js:68:7)
    at Function.Module.runMain (internal/modules/cjs/loader.js:757:11)
    at startup (internal/bootstrap/node.js:283:19)
  errno: -4058,
  syscall: 'open',
  code: 'ENOENT',
  path:
   'H:\\test\\wxapp\\miniprogram\\taroConvert\\static\\iview\\progress\\index' }
生成  页面配置  dist/pages/area-overdue/area-overdue.json
生成  页面逻辑  dist/pages/area-overdue/area-overdue.js
生成  页面模板  dist/pages/area-overdue/area-overdue.wxml
生成  页面样式  dist/pages/area-overdue/area-overdue.wxss
错误  页面编译  页面H:\test\wxapp\miniprogram\taroConvert\src\pages\area-overdue\area-overdue编译失败!
TypeError: Cannot read property 'wxss' of undefined
    at buildDepComponentsResult.map.item (C:\Users\lp\AppData\Local\Yarn\Data\global\node_modules\@tarojs\cli\src\weapp.js:1686:23)
    at Array.map (<anonymous>)
    at getDepStyleList (C:\Users\lp\AppData\Local\Yarn\Data\global\node_modules\@tarojs\cli\src\weapp.js:1685:44)
    at buildSinglePage (C:\Users\lp\AppData\Local\Yarn\Data\global\node_modules\@tarojs\cli\src\weapp.js:1437:28)
    at process._tickCallback (internal/process/next_tick.js:68:7)
    at Function.Module.runMain (internal/modules/cjs/loader.js:757:11)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
生成  页面配置  dist/pages/station-overdue/station-overdue.json
生成  页面逻辑  dist/pages/station-overdue/station-overdue.js
生成  页面模板  dist/pages/station-overdue/station-overdue.wxml
生成  页面样式  dist/pages/station-overdue/station-overdue.wxss
错误  页面编译  页面H:\test\wxapp\miniprogram\taroConvert\src\pages\station-overdue\station-overdue编译失败!
TypeError: Cannot read property 'wxss' of undefined
    at buildDepComponentsResult.map.item (C:\Users\lp\AppData\Local\Yarn\Data\global\node_modules\@tarojs\cli\src\weapp.js:1686:23)
    at Array.map (<anonymous>)
    at getDepStyleList (C:\Users\lp\AppData\Local\Yarn\Data\global\node_modules\@tarojs\cli\src\weapp.js:1685:44)
    at buildSinglePage (C:\Users\lp\AppData\Local\Yarn\Data\global\node_modules\@tarojs\cli\src\weapp.js:1437:28)
    at process._tickCallback (internal/process/next_tick.js:68:7)
    at Function.Module.runMain (internal/modules/cjs/loader.js:757:11)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
{ Error: expected ";".
  
2  @import '../../static/fonts/iconfont.wxss'
                                             ^
  
  src\components\none-data\none-data.scss 2:43  root stylesheet
    at Object.BI (H:\test\wxapp\miniprogram\taroConvert\node_modules\@tarojs\plugin-sass\node_modules\dart-sass\sass.dart.js:5233:30)
    at Object.Ei (H:\test\wxapp\miniprogram\taroConvert\node_modules\@tarojs\plugin-sass\node_modules\dart-sass\sass.dart.js:5149:34)
    at nF.E8 (H:\test\wxapp\miniprogram\taroConvert\node_modules\@tarojs\plugin-sass\node_modules\dart-sass\sass.dart.js:5135:5)
    at Object.GZ (H:\test\wxapp\miniprogram\taroConvert\node_modules\@tarojs\plugin-sass\node_modules\dart-sass\sass.dart.js:463:69)
    at Object.hB (H:\test\wxapp\miniprogram\taroConvert\node_modules\@tarojs\plugin-sass\node_modules\dart-sass\sass.dart.js:2191:27)
    at HV (H:\test\wxapp\miniprogram\taroConvert\node_modules\@tarojs\plugin-sass\node_modules\dart-sass\sass.dart.js:2991:27)
    at Object.renderSync (H:\test\wxapp\miniprogram\taroConvert\node_modules\@tarojs\plugin-sass\node_modules\dart-sass\sass.dart.js:2980:42)
    at Promise (H:\test\wxapp\miniprogram\taroConvert\node_modules\@tarojs\plugin-sass\index.js:34:21)
    at new Promise (<anonymous>)
    at compileSass (H:\test\wxapp\miniprogram\taroConvert\node_modules\@tarojs\plugin-sass\index.js:5:10)
  formatted:
   'Error: expected ";".\n  ╷\n2 │ @import \'../../static/fonts/iconfont.wxss\'\r\n  │                                           ^\n  ╵\n  src\\components\\none-data\\none-data
.scss 2:43  root stylesheet',
  line: 2,
  column: 43,
  file:
   'H:\\test\\wxapp\\miniprogram\\taroConvert\\src\\components\\none-data\\none-data.scss',
  status: 1 }
Done in 9.41s.

期望行为
[这里请用简洁清晰的语言描述你期望的行为]

报错信息

[这里请贴上你的完整报错截图或文字]

系统信息

Taro v1.2 及以上版本已添加 taro info 命令,方便大家查看系统及依赖信息,运行该命令后将结果贴下面即可。

Taro CLI 1.2.26 environment info:
System:
OS: Windows 7
Binaries:
Node: 10.15.3 - C:\Program Files\nodejs\node.EXE
Yarn: 1.15.2 - C:\Users\lp\AppData\Roaming\npm\yarn.CMD
npm: 6.4.1 - C:\Program Files\nodejs\npm.CMD

补充信息
如果转换排错成本过高,是否继续用原生小程序维护 较为方便?

@taro-bot
Copy link

taro-bot bot commented Apr 29, 2019

欢迎提交 Issue~

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

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

Good luck and happy coding~

@yuche
Copy link
Contributor

yuche commented Apr 29, 2019

后续的大部分错误是 src/components/overdue-list/overdue-list.js 造成的,如果有一个组件编译失败,就会造成连锁反应

@yuche yuche added the taroize label Apr 29, 2019
@ruoduan-hub
Copy link
Author

后续的大部分错误是 src/components/overdue-list/overdue-list.js 造成的,如果有一个组件编译失败,就会造成连锁反应

这是其中一段报错:

错误  组件编译  组件src/components/overdue-list/overdue-list.js编译失败!
{ Error: ENOENT: no such file or directory, open 'H:\test\wxapp\miniprogram\taroConvert\static\iview\progress\index'
    at Object.openSync (fs.js:438:3)
    at Object.readFileSync (fs.js:343:35)
    at buildSingleComponent (C:\Users\lp\AppData\Local\Yarn\Data\global\node_modules\@tarojs\cli\src\weapp.js:1746:31)
    at Promise.all.componentPathList.map.componentObj (C:\Users\lp\AppData\Local\Yarn\Data\global\node_modules\@tarojs\cli\src\weapp.js:1679:60)
    at Array.map (<anonymous>)
    at buildDepComponents (C:\Users\lp\AppData\Local\Yarn\Data\global\node_modules\@tarojs\cli\src\weapp.js:1679:40)
    at buildSingleComponent (C:\Users\lp\AppData\Local\Yarn\Data\global\node_modules\@tarojs\cli\src\weapp.js:1845:40)
    at process._tickCallback (internal/process/next_tick.js:68:7)
    at Function.Module.runMain (internal/modules/cjs/loader.js:757:11)
    at startup (internal/bootstrap/node.js:283:19)
  errno: -4058,
  syscall: 'open',
  code: 'ENOENT',
  path:
   'H:\\test\\wxapp\\miniprogram\\taroConvert\\static\\iview\\progress\\index' }

overdue-list 当中找不到原因也没有语法提示 —— 下面是转换后的 overdue-list 代码 感谢大佬的解答

import {  View, Text } from '@tarojs/components'
import Taro from '@tarojs/taro'
import withWeapp from '@tarojs/with-weapp'
import Iprogress from '../../../static/iview/progress/index'
import './overdue-list.scss'



withWeapp('Component')
class _C extends Taro.Component {
  static defaultProps = {
    item: null
  }
  _observeProps = []
  state = {}
  lifetimes = {
    attached: function() {},
    detached: function() {
      // 在组件实例被从页面节点树移除时执行
    }
  }
  config = {
    component: true
  }

  render() {
    const { item: item } = this.props
    const {} = this.state
    return (
      <View className='sale-list'>
        <View className='ranking'>
          <Text
            className={
              'ranking-num ' +
              (item.ranking > 3
                ? 'normal-color'
                : item.ranking == 1
                ? 'number-one'
                : item.ranking == 2
                ? 'number-two'
                : 'number-three')
            }
          >
            {item.ranking}
          </Text>
          <View className='title-wrap'>
            <Text className='time'>{item.name}</Text>
            <Text className='iconfont icon-dayuhao' />
          </View>
        </View>
        <View className='content'>
          <View className='content-list'>
            <View className='sale-data'>
              <View className='item'>
                {'总应收: ' + item.allReceive + ' 元'}
              </View>
              <View className='item'>
                逾期占比:
                <Iprogress
                  iClass='progress'
                  percent={item.proportion}
                  status='success'
                />
              </View>
            </View>
            <View className='sale-data'>
              <View className='item'>
                {'正常应收: ' + item.normalReceive + '  元'}
              </View>
              <View className='item'>
                {'逾期应收: ' + item.overdueReceive + '  元'}
              </View>
            </View>
          </View>
        </View>
      </View>
    )
  }
}

export default _C

下面是·index.js·这个文件内容
H:\test\wxapp\miniprogram\taroConvert\static\iview\progress\index

Component({
    externalClasses: ['i-class'],

    properties: {
        percent: {
            type: Number,
            value: 0
        },
        // normal || active || wrong || success
        status: {
            type: String,
            value: 'normal'
        },
        strokeWidth: {
            type: Number,
            value: 10
        },
        hideInfo: {
            type: Boolean,
            value: false
        }
    }
});

摸不着头脑是什么原因,有什么调试方法吗?

@yuche
Copy link
Contributor

yuche commented Apr 29, 2019

报错说这个文件不存在

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants