在react Native应用程序中使用本地未发布的NPM包

问题描述 投票:0回答:1

我有以下包

mylibrary
,其中导出了一个类和一个接口。

src/Notification.ts

import {INotification} from 'INotification';

export class Notification implements INotification {
    private readonly _name: string;
    private _body?: any;

    public constructor(name: string, body?: any) {
        this._name = name;
        this._body = body;
    }

    public get name(): string { return this._name; }
    public get body(): any { return this._body;}
}

src/INotification

export interface INotification {
    readonly name: string;
    body?: any;
}

index.ts

export {Notification} from './src/Notification';
export type {INotification} from "./src/INotification";

使用我的库进行项目

我手动将 mylibrary 复制到 node_modules 文件夹

package.json

"dependencies": {
  "react": "18.2.0",
  "react-native": "0.71.19",
  "mylibrary": "file:node_modules/mylibrary"
},

App.js

import {StyleSheet, Text, View} from 'react-native';
import React from 'react';
import {Notification} from 'mylibrary';

const App = () => {
  const n = new Notification('a', null);

  return (
    <View>
      <Text>{n.name}</Text>
    </View>
  );
};

export default App;

错误

渲染错误 无法读取未定义的属性“原型”。

我怀疑模拟器可能无法从我的计算机中找到node_modules/mylibrary包,因为模拟器和桌面都有不同的磁盘空间分配

enter image description here

reactjs react-native npm npm-package
1个回答
0
投票

我已经使用了很多包作为本地包。您不需要在 package.json 中添加包名称/路径以及在节点模块中添加文件文件夹。将文件直接添加到您的项目 src 并访问它们。

© www.soinside.com 2019 - 2024. All rights reserved.