Javascript 意外标记“<&引用;从第三方库导入React项目时
我是个新手,没有使用webpack的经验,正在努力解决以下问题: 我用Javascript 意外标记“<&引用;从第三方库导入React项目时,javascript,reactjs,webpack,Javascript,Reactjs,Webpack,我是个新手,没有使用webpack的经验,正在努力解决以下问题: 我用npx create React app创建了一个新的React应用程序(据我所知,它使用了引擎盖下的webpack),并用npm install安装了一个第三方库。到目前为止还不错,我能够使用这个库,一切都按预期运行 不幸的是,这个库有一些限制,我想调整它的一个函数来满足我的需要。最初的函数如下所示: project\u root/node\u modules/third party library/modules/expo
npx create React app
创建了一个新的React应用程序(据我所知,它使用了引擎盖下的webpack),并用npm install
安装了一个第三方库。到目前为止还不错,我能够使用这个库,一切都按预期运行
不幸的是,这个库有一些限制,我想调整它的一个函数来满足我的需要。最初的函数如下所示:
project\u root/node\u modules/third party library/modules/export/tweakableFunction.js
:
import {someFunction} from "../utils/configUtils";
export const tweakableFunction = (a, b) => {
return someFunction(a, b);
}
"use strict";
export {tweakableFunction } from "./tweakableFunction";
import {someFunction} from "third-party-library/modules/utils/configUtils";
export const tweakedFunction = (a, b) => {
//... do some stuff the original library can't do ...
return someFunction(a, b);
}
"use strict";
export {tweakedFunction } from "./tweakedFunction";
SyntaxError: [...] Unexpected token
...
> 21 | someFunction: (props) => <SomeComponent {...props} />,
| ^
...
project\u root/node\u modules/third party library/modules/export/index.js
:
import {someFunction} from "../utils/configUtils";
export const tweakableFunction = (a, b) => {
return someFunction(a, b);
}
"use strict";
export {tweakableFunction } from "./tweakableFunction";
import {someFunction} from "third-party-library/modules/utils/configUtils";
export const tweakedFunction = (a, b) => {
//... do some stuff the original library can't do ...
return someFunction(a, b);
}
"use strict";
export {tweakedFunction } from "./tweakedFunction";
SyntaxError: [...] Unexpected token
...
> 21 | someFunction: (props) => <SomeComponent {...props} />,
| ^
...
在我的项目中,我想复制tweakableFunction
,并为其添加一些功能:
project\u root/src/tweakedFunction/tweakedFunction.js
:
import {someFunction} from "../utils/configUtils";
export const tweakableFunction = (a, b) => {
return someFunction(a, b);
}
"use strict";
export {tweakableFunction } from "./tweakableFunction";
import {someFunction} from "third-party-library/modules/utils/configUtils";
export const tweakedFunction = (a, b) => {
//... do some stuff the original library can't do ...
return someFunction(a, b);
}
"use strict";
export {tweakedFunction } from "./tweakedFunction";
SyntaxError: [...] Unexpected token
...
> 21 | someFunction: (props) => <SomeComponent {...props} />,
| ^
...
project\u root/src/tweakedFunction/index.js
:
import {someFunction} from "../utils/configUtils";
export const tweakableFunction = (a, b) => {
return someFunction(a, b);
}
"use strict";
export {tweakableFunction } from "./tweakableFunction";
import {someFunction} from "third-party-library/modules/utils/configUtils";
export const tweakedFunction = (a, b) => {
//... do some stuff the original library can't do ...
return someFunction(a, b);
}
"use strict";
export {tweakedFunction } from "./tweakedFunction";
SyntaxError: [...] Unexpected token
...
> 21 | someFunction: (props) => <SomeComponent {...props} />,
| ^
...
不幸的是,当我运行我的项目时,我在project\u root/node\u modules/third party library/modules/some\u dir/somefile.js中遇到以下错误:
import {someFunction} from "../utils/configUtils";
export const tweakableFunction = (a, b) => {
return someFunction(a, b);
}
"use strict";
export {tweakableFunction } from "./tweakableFunction";
import {someFunction} from "third-party-library/modules/utils/configUtils";
export const tweakedFunction = (a, b) => {
//... do some stuff the original library can't do ...
return someFunction(a, b);
}
"use strict";
export {tweakedFunction } from "./tweakedFunction";
SyntaxError: [...] Unexpected token
...
> 21 | someFunction: (props) => <SomeComponent {...props} />,
| ^
...
SyntaxError:[…]意外标记
...
>21 | someFunction:(道具)=>,
| ^
...
我是否必须在我的根项目中创建一个webpack/Babel配置才能工作?我试图实现的目标是否可行?首先,修改node\u modules
文件夹中的任何内容都不是一个好主意,因为npm update
将覆盖您在其中更改的任何内容。此外,这些更改将仅在项目的本地实例中可用,您将无法在其他任何地方使用它们。考虑一下,如果其他人可以从你的调整中获益,或者把这个库放入你的个人回购中,并将你的更改添加到所述回购中,就可以做出公开承诺。
您看到的错误之所以发生,是因为您应该用括号中的React组件包装return语句
someFunction: (props) => return (<SomeComponent {...props} />);
someFunction:(props)=>return();
如果在那个错误之后仍然出现,您将尝试在公共JS文件中使用JSX语法,因为节点模块文件不会用babel处理
当您导入javascript文件时,会使用babel编译文件,但在create react app default WebPack config中,节点_模块
已被排除,因此当您导入确切的文件时,会抛出一个错误,因为
JSX语法不是本机js语法
回合=>返回(