Node.js Can';在npm运行弹出后不要使用JSX
我一直在关注,一周来我一直在努力解决这个问题:Node.js Can';在npm运行弹出后不要使用JSX,node.js,reactjs,npm,node-modules,npm-package,Node.js,Reactjs,Npm,Node Modules,Npm Package,我一直在关注,一周来我一直在努力解决这个问题: SyntaxError: TestComponent.js: Unexpected token (5:6) 3 | render() { 4 | return ( > 5 | <div> | ^ 6 | { this.props.children } 7 | </div> 8 | ) "babel": { "
SyntaxError: TestComponent.js: Unexpected token (5:6)
3 | render() {
4 | return (
> 5 | <div>
| ^
6 | { this.props.children }
7 | </div>
8 | )
"babel": {
"presets": [
"@babel/env",
"@babel/react"
]
}
我试过几种方法,但都无法阻止错误的发生。我希望有人已经解决了这个问题,并能提供解决方案
非常感谢 TLDR:一步一步详细说明 自编写本教程以来,有几件事发生了变化,即以下是突破性的变化,除非另有列出,否则本教程中的其他步骤是相同的:
babel cli
,以使自定义“lib”脚本命令正常工作:
npm安装--保存dev@babel/cli
@babel/plugin transform-react jsx
插件来编译和转换您的react代码,因为babel 6及以上版本不再有任何用于react的本机转换。当您希望仅与其他用户的本地JavaScript共享自定义组件时,这是必需的
npm安装——保存dev@babel/plugin-transform-resact-jsx
“脚本”:{
“开始”:“节点脚本/start.js”,
“build”:“节点脚本/build.js”,
“lib”:“babel--plugins@babel/transform-react jsx src/node_modules--out-dir-lib--copy files”,
“test”:“节点脚本/test.js”
},
.babelrc
文件,因为我们稍后将编辑webpack.config.js
文件以正确传输JSX
步骤1-3将允许您发布组件并与其他人共享组件,但您仍需根据本地发展进行调整,我将在下面介绍这些步骤:
package.json
请删除“main”
入口点的.js
扩展,因为这将导致以下情况。例如,下面是我的自定义组件的包.json
:
{
“私人”:没错,
“名称”:“您的组件”,
“主”:“/YourComponent”
}
JSX
语法:
SyntaxError:YourComponent.js:意外标记(6:6)
现在,如果您在本地运行,它应该可以工作:npm run start
这些是帮助修复我的JSX
投诉的主要步骤,这些投诉涉及在本地运行以及在npmjs上与其他人共享我的自定义组件。我用我的代码和详细的分步指南创建了一个公共git回购,可以找到它
希望这有帮助 看看教程,注意到它同时使用了“和”(不同风格的引号,我不知道正确的语言来正确引用它们) 两者在外观上存在着非常细微的差异,但只有一个会被正确解释,另一个会导致错误。教程中的.babelrc使用了错误的引号样式
如果您是从文章中复制和粘贴的,请检查以确保您使用的引号样式正确,并且应该是最接近键盘上Enter键的引号样式。您想要实现什么?创建一个使用JSX的库?您可以研究。我已经看到了几种方法。但是我喜欢最适合我要求的链接教程方法元素。因此,试图解决这个问题。PS:无论谁给我这个解决方案,我都会提供价值500英镑的奖金。提前谢谢。将你的文件重命名为
TestComponent.jsx
。这有帮助吗?@smac89没有帮助。没有。我没有复制和粘贴这些东西。教程中没有TestComponent
。但我是为了测试它而做的。你猜完全错误。如果发生这种情况,您将不会看到jsx错误。请删除您的答案。因为,这与问题无关。事实上,这是我过去为纠正我自己做的教程中的问题而必须做的。很抱歉提供建议。祝您好运找到解决方案!是的,同意。但我永远不要复制粘贴代码。感谢您尝试帮助我。评论不适用于扩展讨论或调试会话;此对话已完成。请确保答案已包含所有相关信息。
3 | render() {
4 | return (
> 5 | <div>
| ^
6 | { this.props.children }
7 | </div>
8 | )
...
// Process application JS with Babel.
// The preset includes JSX, Flow, TypeScript, and some ESnext features.
{
test: /\.(js|mjs|jsx|ts|tsx)$/,
include: paths.appSrc,
loader: require.resolve('babel-loader'),
options: {
customize: require.resolve(
'babel-preset-react-app/webpack-overrides'
),
presets: ['@babel/preset-env', '@babel/preset-react'],
plugins: [
[
require.resolve('babel-plugin-named-asset-import'),
{
loaderMap: {
svg: {
ReactComponent: '@svgr/webpack?-svgo,+ref![path]',
},
},
},
],
],
// This is a feature of `babel-loader` for webpack (not Babel itself).
// It enables caching results in ./node_modules/.cache/babel-loader/
// directory for faster rebuilds.
cacheDirectory: true,
cacheCompression: isEnvProduction,
compact: isEnvProduction,
},
},
...