javascript - babel-node 无法在 node_modules 中要求 jsx 文件

标签 javascript node.js reactjs babeljs

我知道babel-node忽略 node_modules默认情况下,所以我运行了三种不同的方式来覆盖它,但都失败了:

  1. 跑了 babel-node app.js.babelrc :

    {
      "presets": ["es2015", "react"],
      "only": [
        "app",
        "node_modules/react-components"
      ]
    }
    

    结果:SyntaxError: Unexpected token <对于所需的 jsx Node 模块

  2. 跑了 babel-node app.js.babelrc :

    {
      "presets": ["es2015", "react"],
      "ignore": "node_modules\/(?!react-components)"
    }
    

    结果:SyntaxError: Unexpected token <对于 require jsx Node 模块

  3. 跑了 babel-node ./bin/www --ignore '/node_modules/(?!react-components).babelrc :

    {
      "presets": ["es2015", "react"]
    }
    

    结果:

    [project]/node_modules/babel-preset-react/node_modules/babel-plugin-transform-react-jsx/lib/index.js:12
        var visitor = require("babel-helper-builder-react-jsx")({
                                                               ^
    
    TypeError: object is not a function
    

使用带有忽略选项的注册 Hook 可以正常工作。

跑了 node app.jsapp.js 的开头使用此代码

require('babel-core/register')({
    ignore: /node_modules\/(?!react-components)/
});

即使这行得通,我仍然想知道为什么我的实现使用 babel-node不起作用。谢谢。


引用资料:

最佳答案

这是 babel 中的一个已知错误,它会忽略 onlyignore

相关错误是T6726 , 这一直是 fixed in babel 6.14.0 .

关于javascript - babel-node 无法在 node_modules 中要求 jsx 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35002195/

相关文章:

javascript - Node.js:监听器有问题

javascript - 突出显示页面滚动上的事件菜单项?

javascript - 使用 wget 将下载的文件名设置在不同的目录中

javascript - react JS : React Voice to Text Recognition

javascript - 无法读取未定义的属性 `parentNode`

javascript - Hubspot:HTML 元素的自定义属性

javascript - 如何使用 JSF 和 Javascript 在下拉选择时动态更新 Google 区域图表数据

javascript - 我们可以在 javascript/nodejs 中将键字符串声明为最终变量吗

node.js - 如何使用 Node.js 在 Sequelize 6 中实现实例方法

javascript - 类型 '() => Promise<AxiosResponse<any>>'不能用作索引类型[ReactJs]