首页 > 解决方案 > 如何 npm-link 其他项目

问题描述

我正在尝试编写一个库模块,最终应该由其他模块导入,就像 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.

我努力了:

我真正想要的:

只是一种拥有一个库的方法,我可以通过 随意包含import myStuff from 'myLibrary'它,而无需将其推送到 npm(公司政策禁止这样做)。

标签: node.jsreactjsnpmwebpacknpm-link

解决方案


很高兴能够看到有关此错误的更多信息,但我可以建议您使用Verdaccio吗?npm 链接应该可以正常工作,但是如果您真的想模拟 npm,您可以使用 verdaccio 创建一个本地私有 npm,并将该软件包安装到您需要的每个项目中。唯一的事情是您需要将 npm 配置为首先查看 verdaccio。


推荐阅读