babel-node 无法在 node_modules 中需要 jsx 文件
Posted
技术标签:
【中文标题】babel-node 无法在 node_modules 中需要 jsx 文件【英文标题】:babel-node fails to require jsx file in node_modules 【发布时间】:2016-05-02 07:53:22 【问题描述】:我知道babel-node
默认会忽略node_modules
,所以我运行了三种不同的方法来覆盖它,都失败了:
运行babel-node app.js
和.babelrc
:
"presets": ["es2015", "react"],
"only": [
"app",
"node_modules/react-components"
]
结果:SyntaxError: Unexpected token <
用于所需的 jsx 节点模块
运行babel-node app.js
和.babelrc
:
"presets": ["es2015", "react"],
"ignore": "node_modules\/(?!react-components)"
结果:SyntaxError: Unexpected token <
用于 require jsx 节点模块
运行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
的实现不起作用。谢谢。
参考:
How do I use babel in a node CLI program? import a module from node_modules with babel but failed http://babeljs.io/docs/usage/cli/ http://babeljs.io/docs/usage/options/【问题讨论】:
有没有想过这个问题? 【参考方案1】:这是 babel 中的一个已知错误,它会忽略 only
和 ignore
。
相关的bug是T6726,一直是fixed in babel 6.14.0。
【讨论】:
以上是关于babel-node 无法在 node_modules 中需要 jsx 文件的主要内容,如果未能解决你的问题,请参考以下文章
[NODEMON]- babel-node 未被识别为内部或外部命令