【问题标题】:unexpected token import without ejecting/updating config未弹出/更新配置的意外令牌导入
【发布时间】:2018-12-01 03:07:19
【问题描述】:

有没有一种简单的方法来配置 Create React App 以便它使用预先配置的 Jest 来使用 ES6 模块 不弹出?我正在将基础站点导入项目中。当我为 App 组件运行第一个测试时,我收到以下错误:

FAIL  src/App/App.test.js 
Test suite failed to run

/node_modules/foundation-sites/dist/js/npm.js:1
({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){import $ from 'jquery';
                                                                                         ^^^^^^

SyntaxError: Unexpected token import

我尝试安装 babel-jest 并添加一个带有预设的 .babelrc 文件:["react", "es2015"] 没有运气。如果您的 node_modules 之一使用 JS 模块,我不知道其他人是否使用 Create-React-App 开玩笑测试取得了任何成功。

【问题讨论】:

    标签: javascript reactjs jestjs create-react-app es6-modules


    【解决方案1】:

    在当前版本的 CRA (1.5.2) 测试中,导入工作开箱即用。 你做了什么改变吗?如果是,也许您可​​以分享测试的代码或进行简单的复制?

    我的建议是确保您没有在本地或全局安装其他版本的 jest(据我所知,CRA 不喜欢这样)。

    【讨论】:

    • 好的,我能够重现您的问题,并且似乎基础站点的 dist 代码具有未转译的代码,并且由于 CRA 不涉及 node_modules,因此会引发错误。据我所知,在不弹出的情况下没有简单的方法可以做到这一点。你可以尝试弄乱react-app-rewired,但我不会称之为“简单的方法”。但是看看this PR,这个问题将在 6.5.* 版本的基础方面得到解决。
    • 感谢您对此进行调查。我得出了同样的结论。以前,我的团队刚刚被弹出。我没有看到更好的方法。弹出后,我可以根据需要进行配置。当 CRA 说这应该是最后的手段但你必须做你必须做的事情时,我不喜欢不得不弹出。如果 CRA 有一种简单的方法来实现这一点,而无需等待 Node 支持 ES 模块,那就太好了。
    猜你喜欢
    • 1970-01-01
    • 2018-03-14
    • 2016-06-18
    • 2021-05-24
    • 1970-01-01
    • 1970-01-01
    • 2016-04-27
    • 2016-12-09
    • 2019-03-21
    相关资源
    最近更新 更多