【发布时间】:2021-12-29 04:57:16
【问题描述】:
我在 typescript 中有一个身份验证库,已发布到 npm,并且希望能够将它用于节点项目和 react 项目(使用 create-react-app 创建)。 如果我是正确的,在 npm 上发布的包将在使用 create-react-app 创建的应用程序中工作,因为 create-react-app 中的捆绑会神奇地正确捆绑这些东西,但是当我安装和导入时我在反应我的依赖项之一中发布的库将无法正确加载。 有趣的是,其他依赖项运行良好,只是这个依赖项没有正确加载。在 Node 项目中一切正常,而且问题似乎只发生在 React 上。
当我在调试器中调试时,我看到导入的依赖项的值没有正确加载
Object.defineProperty(exports, "__esModule", { value: true });
exports.JsSigner = void 0;
const util_1 = require("dependency with issue");
设置为路径“util_1: /static/media/index.325f9bf6594ebb34640d.cjs”,而其他依赖项已正确分配对象。
有趣的是,当我安装/导入有问题的依赖包时,它直接在 react 应用程序中正确加载。
我想知道在发布之前是否需要在我的包中设置任何内容以使其适用于 node 和 create-react-app 项目?!或者发布的包应该适用于这两种类型的项目?!
【问题讨论】:
-
如果您的代码与直接反应无关,并且不调用仅在节点中可用或仅在浏览器中可用的任何内容,那么它应该可以正常工作而无需任何特殊考虑。这个包的
package.json是什么样的?如何声明依赖关系? -
您确定该软件包与浏览器环境兼容吗?不是所有的包都是。也许它导入了仅在 node.js 中可用的东西。
-
我相信它应该是兼容的,因为当我直接在我的 create-react-app 中安装该软件包(@polkadot/util-crypto)时,它工作正常,问题仅在通过我的加载时发生自己发布的包。
标签: node.js reactjs typescript create-react-app npm-publish