我正在尝试编写一个库模块,最终应该由其他模块导入,就像 material-ui 或 react-query 一样。
我目前的设置是这样的:
myRoot
|-- lib
| |-- src
| |-- config-overwrides.js (I'm using react-app-rewired, but I think it's not relevant)
| |-- package.json
| |-- ... other stuff
|-- consumer
| |-- src
| |-- package.json
| |-- ... other stuff
请注意,消费者现在是一个应用程序,但 lib 应该被不止一个其他应用程序使用。
目前,为了举例,两者都只是一个“你好,世界!”,我正试图让这条线import myLib from 'lib'
在consumer/src/App.jsx
.
我得到的是:
SyntaxError: C:\Users\...\lib\src\index.js: Support for the experimental syntax 'jsx' isn't currently enabled (7:3):
5 | function MountApp(element) {
6 | ReactDOM.render(
> 7 | <React.StrictMode>
| ^
8 | <App />
9 | </React.StrictMode>,
10 | element
Add @babel/plugin-transform-react-jsx (https://git.io/vb4yd) to the 'plugins' section of your Babel config to enable transformation.
我努力了:
看看它是如何在create-react-library中完成的,但他们在他们的示例应用程序 package.json 中使用了对周围项目的直接引用。见这里。这意味着我的应用程序只能包含其中一个库,这有点违背了拥有模块的想法。
修补 webpack 配置,并拥有
react
peerDependency 或 devDependency,但没有真正的运气。但我对此一无所知,所以这更像是一次试错,同时希望它是偶然的,或者给出一个好的错误信息。
我真正想要的:
只是一种拥有一个库的方法,我可以通过 随意包含import myStuff from 'myLibrary'
它,而无需将其推送到 npm(公司政策禁止这样做)。