如何使用Android的自定义react-native本机模块制作npm包?

时间:2016-04-20 08:52:44

标签: android npm react-native

我的一般问题:我为react-native Android构建了一个本机组件。它有自己的依赖关系等。我按照说明编辑了package.json,删除了react-native的依赖项,现在正在测试包。对于本地反应的包,是否有任何特定的内容?

我收到的错误/警告:

我们说我建造的模块名为react-native-mymodule

我跑的命令:

$ npm install react-native-mymodule $ rnpm link react-native-mymodule

运行react-native run-android时,在步骤:react-native-mymodule:bundleReleaseJsAndAssets会引发以下错误:

module.js:341
    throw err;
    ^    

Error: Cannot find module '/path/to/my/test/project/node_modules/react-native-mymodule/node_modules/react-native/local-cli/cli.js'
    at Function.Module._resolveFilename (module.js:339:15)
    at Function.Module._load (module.js:290:25)
    at Function.Module.runMain (module.js:447:10)
    at startup (node.js:146:18)
    at node.js:404:3
:react-native-mymodule:bundleReleaseJsAndAssets FAILED

这是否意味着,我必须为我的原生模块生成签名的APK?如果是这样,为什么在创建本机模块时这是必要的?

我还有四次得到以下警告:

WARNING: Dependency test_project:react-native-mymodule:unspecified on project app resolves to an APK archive which is not supported as a compilation dependency. File: /path/to/my/test_project/node_modules/react-native-mymodule/android/app/build/outputs/apk/react-native-mymodule-release-unsigned.apk

到目前为止,我在网络和反应原生文档中的搜索都没有成功。

1 个答案:

答案 0 :(得分:2)

您可以从react-native-device-info这样的其他原生作品中学习,它是我能看到的最简单的react-native库之一,它只有build.gradleAndroidManifest.xml和两个Java类。

在你package.json中,您不需要react-native依赖关系,只需将其放入peerDependencies部分,或者不要将其包含在package.json中文件。