【问题标题】:babel-node fails to require jsx file in node_modulesbabel-node 无法在 node_modules 中需要 jsx 文件
【发布时间】:2016-05-02 07:53:22
【问题描述】:

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

  1. 运行babel-node app.js.babelrc

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

    结果:SyntaxError: Unexpected token < 用于所需的 jsx 节点模块

  2. 运行babel-node app.js.babelrc

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

    结果:SyntaxError: Unexpected token < 用于 require jsx 节点模块

  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
    

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

app.js开头的这段代码运行node app.js

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

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


参考:

【问题讨论】:

  • 有没有想过这个问题?

标签: javascript node.js reactjs babeljs


【解决方案1】:

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

相关的bug是T6726,一直是fixed in babel 6.14.0

【讨论】:

    猜你喜欢
    • 2016-02-02
    • 2019-08-25
    • 1970-01-01
    • 2019-03-05
    • 2017-01-04
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2018-05-05
    相关资源
    最近更新 更多