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

npm run dev:h5 编译失败 You may need an appropriate loader to handle this file type. #2224

Closed
ctcx opened this issue Feb 20, 2019 · 22 comments
Assignees

Comments

@ctcx
Copy link

ctcx commented Feb 20, 2019

问题描述
第一次使用taro 和 taro-ui,打算开发微信小程序;有react 和 微信小程序原生开发经验;按照taro, taro-ui 官方教程使用,遇到问题后查阅了历史issues 并按照解决办法尝试,问题依旧。

复现步骤

1. cnpm install -g @tarojs/cli
2. taro init myApp
3. cd myApp
4. cnpm install taro-ui --save
5. npm run dev:h5

config/index.js 已加入配置

h5: {
    publicPath: '/',
    staticDirectory: 'static',
    esnextModules: ['taro-ui'],

app.scss 加入样式

@import "~taro-ui/dist/style/index.scss";

pages/index.js 加入代码

import Taro, { Component } from '@tarojs/taro'
import { View, Text } from '@tarojs/components'
import { AtButton } from 'taro-ui'
import './index.scss'

export default class Index extends Component {

  config = {
    navigationBarTitleText: '首页'
  }

  componentWillMount () { }

  componentDidMount () { }

  componentWillUnmount () { }

  componentDidShow () { }

  componentDidHide () { }

  render () {
    return (
      <View className='index'>
        <AtButton type='primary'>按钮文案</AtButton>
      </View>
    )
  }
}

期望行为
打开页面显示 按钮

报错信息

创建  发现文件  src/app.scss
创建  发现文件  src/index.html
创建  发现文件  src/pages/index/index.js
创建  发现文件  src/pages/index/index.scss


ℹ️  Listening at http://127.0.0.1:10086/

监听文件修改中...

🙅   Failed to compile.

./node_modules/.2.0.0@taro-ui/dist/h5/components/countdown/index.js 105:11
Module parse failed: Unexpected token (105:11)
You may need an appropriate loader to handle this file type.
|     } = this.state;
| 
>     return <View className={classNames({
|       'at-countdown': true,
|       'at-countdown--card': isCard

系统信息

👽 Taro v1.2.13
  Taro CLI 1.2.13 environment info:
    System:
      OS: macOS 10.14.3
      Shell: 3.2.57 - /bin/bash
    Binaries:
      Node: 11.1.0 - /usr/local/bin/node
      Yarn: 1.12.3 - /usr/local/bin/yarn
      npm: 6.4.1 - /usr/local/bin/npm
    npmPackages:
      @tarojs/components: 1.2.13 => 1.2.13 
      @tarojs/plugin-babel: 1.2.13 => 1.2.13 
      @tarojs/plugin-csso: 1.2.13 => 1.2.13 
      @tarojs/plugin-sass: 1.2.13 => 1.2.13 
      @tarojs/plugin-uglifyjs: 1.2.13 => 1.2.13 
      @tarojs/router: 1.2.13 => 1.2.13 
      @tarojs/taro: 1.2.13 => 1.2.13 
      @tarojs/taro-alipay: 1.2.13 => 1.2.13 
      @tarojs/taro-h5: 1.2.13 => 1.2.13 
      @tarojs/taro-swan: 1.2.13 => 1.2.13 
      @tarojs/taro-tt: 1.2.13 => 1.2.13 
      @tarojs/taro-weapp: 1.2.13 => 1.2.13 
      @tarojs/webpack-runner: 1.2.13 => 1.2.13 
      eslint-config-taro: 1.2.13 => 1.2.13 
      eslint-plugin-taro: 1.2.13 => 1.2.13 
      nervjs: ^1.3.9 => 1.3.12 
    npmGlobalPackages:
      typescript: 3.1.5
  • Taro 版本 [v1.2.13]
  • Taro UI 版本 [v2.0.0]
  • 报错平台 [h5, weapp 无效果]
@koppthe koppthe transferred this issue from NervJS/taro-ui Feb 20, 2019
@taro-bot
Copy link

taro-bot bot commented Feb 20, 2019

欢迎提交 Issue~

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

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

Good luck and happy coding~

@luckyadam luckyadam added the H5 label Feb 20, 2019
@taro-bot
Copy link

taro-bot bot commented Feb 20, 2019

CC @Littly

@Littly
Copy link
Contributor

Littly commented Feb 20, 2019

按照操作,没有复现你的问题喔

@Andyliwr
Copy link

遇到了相同的问题
image

@zhang14725804
Copy link

_20190220212852

@holin
Copy link

holin commented Feb 21, 2019

我也出现这个问题,找了两天了,最后发现是我系统里有一个 ~/.babelrc 文件导致的,干掉这个文件,就能正常编译了。

@Littly
Copy link
Contributor

Littly commented Feb 22, 2019

我也出现这个问题,找了两天了,最后发现是我系统里有一个 ~/.babelrc 文件导致的,干掉这个文件,就能正常编译了。

是否都是类似于这位老哥的情况?不是的话,需要提供一个能复现的仓库 不然完全没法debug

@wcmboy
Copy link

wcmboy commented Feb 23, 2019

同样的问题,没发现有~/.babelrc文件,要怎么搞?

@zhang14725804
Copy link

1、首先检查config/index.js 是否已加入配置 esnextModules: ['taro-ui']
2、删掉.temp文件夹重新npm run dev
3、删除node_modules文件夹重新安装依赖

亲测有效

@wcmboy
Copy link

wcmboy commented Feb 24, 2019

1、首先检查config/index.js 是否已加入配置 esnextModules: ['taro-ui']
2、删掉.temp文件夹重新npm run dev
3、删除node_modules文件夹重新安装依赖

亲测有效

esnextModules: ['taro-ui'] 这个是加到config/index.js哪个位置?

@ctcx
Copy link
Author

ctcx commented Feb 26, 2019

1、首先检查config/index.js 是否已加入配置 esnextModules: ['taro-ui']
2、删掉.temp文件夹重新npm run dev
3、删除node_modules文件夹重新安装依赖
亲测有效

esnextModules: ['taro-ui'] 这个是加到config/index.js哪个位置?

config/index.js 已加入配置

h5: {
    publicPath: '/',
    staticDirectory: 'static',
    esnextModules: ['taro-ui'],

@Littly
Copy link
Contributor

Littly commented Feb 27, 2019

如果依然出现这种情况 那需要一个可以重现这种情况的仓库地址

@sananiki
Copy link

sananiki commented Mar 4, 2019

如果依然出现这种情况 那需要一个可以重现这种情况的仓库地址

我用的taro-ui的官方仓库进行的测试,有两台机器win7,win server2008可以正常运行,还有一台win7,mac跑不起来,就报这个./node_modules/.2.0.0@taro-ui/dist/h5/components/countdown/index.js 105:11 错误

@ASeR1-ATG
Copy link

ASeR1-ATG commented Mar 4, 2019 via email

@ASeR1-ATG
Copy link

ASeR1-ATG commented Mar 4, 2019 via email

@Littly
Copy link
Contributor

Littly commented Mar 14, 2019

如果依然出现这种情况 那需要一个可以重现这种情况的仓库地址

我用的taro-ui的官方仓库进行的测试,有两台机器win7,win server2008可以正常运行,还有一台win7,mac跑不起来,就报这个./node_modules/.2.0.0@taro-ui/dist/h5/components/countdown/index.js 105:11 错误

神奇了。你是用什么包管理器安装的?看你的报错日志,taro-ui的最终安装目录是node_modules/.2.0.0@taro-uiesnextModules里面配taro-ui无法匹配到他。

@Littly
Copy link
Contributor

Littly commented Mar 14, 2019

遇到了相同的问题
image

应该是node模块的安装路径导致的。你用的是什么系统和包管理器?

@asreday
Copy link

asreday commented Mar 16, 2019

改了上面的都还是上面的那个问题,无法编译打包H5

@asreday
Copy link

asreday commented Mar 16, 2019

遇到了相同的问题
image

应该是node模块的安装路径导致的。你用的是什么系统和包管理器?

我是用cnpm i -D taro-ui
版本2.0.2。

@asreday
Copy link

asreday commented Mar 16, 2019

后面把taro回退到1.2.17后新建一个项目,把package.json复制过去,然后下taro-ui后就好,个人觉得的应该是@tarojs依赖包中的问题,先用1.2.17好了

@Littly
Copy link
Contributor

Littly commented Mar 25, 2019

翻了一下上面的评论,这个情况跟具体平台上npm依赖的安装位置有关。

受不同的包管理器影响,taro-ui会被安装在不同的目录下,有最普通的taro-ui,有.2.0.0@taro-ui,还有_taro-ui@2.0.0@taro-ui,这些不同的路径影响了esnextModules的匹配。

taro@1.2.20版本之后对匹配逻辑进行了修改,除了字符串匹配,也增加了正则表达式的匹配功能。如果发现配置了esnextModules后仍然出现need an appropriate loader to handle....的错误,不妨对照本地的安装路径,修改下配置再看看。

@taro-bot
Copy link

taro-bot bot commented Mar 25, 2019

Hello~

您的问题楼上已经有了确切的回答,如果没有更多的问题这个 issue 将在 15 天后被自动关闭。

如果您在这 15 天中更新更多信息自动关闭的流程会自动取消,如有其他问题也可以发起新的 Issue。

Good luck and happy coding~

@Littly Littly closed this as completed Apr 8, 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

10 participants