如何在React Native和VSCode中使用带(或不带)Typescript的Nodestream

我使用ReactNativify (而不是更多的hacky的rn-nodeify方法)将一些基于Node的软件包移植到React Native,以在依赖关系树中浏览/ 清除 Node API对象。 我正在开发VSCode。

使用ReactNativify,您可以在.babelrc中使用babel-plugin-rewrite-require (或者在rn-cli.config.js + transformer.js使用javascript):

 { ... "plugins": [ ["rewrite-require", { "aliases": { "constants": "constants-browserify", "crypto": "react-native-crypto", "dns": "node-libs-browser/mock/dns", "domain": "domain-browser", "stream": "stream-browserify", "_stream_duplex": "readable-stream/duplex", "_stream_passthrough": "readable-stream/passthrough", "_stream_readable": "readable-stream/readable", "_stream_transform": "readable-stream/transform", "_stream_writable": "readable-stream/writable", ... etcetera } }] ... } 

( 在这里看一个完整的例子)

这工作得很好,我在VSCode中得到了很好的代码完成/智能感知等。

现在我想在如下的MyStream.js使用Node的Stream:

 import { Duplex } from 'stream' class MyStream extends Duplex { // ... implementation } 

第一次这似乎工作。 我得到代码完成,能够去“types定义”。 一切似乎都很好。

我喜欢types安全和“intellisense-the-max”,因此决定将项目/代码转换为打字稿。 这里没问题。

但是,当将MyStream.js更改为MyStream.ts ,IDE抱怨没有find包'stream'。

我尝试了各种各样的东西,但都没有成功,于是决定把它转换回javascript,但是现在原来的工作stream导入程序再也找不到代码了。 换回Typescript,现在没有任何错误检查了。 总之,这一切都感觉很不稳定。

我的问题:

  • 有人有使用React Native使用Node的“stream”的例子吗?
  • 是否有特殊的考虑让代码完成在VSCode(正常的ES6 + Typescript)正常工作?
  • 我可以使用ReactNativify或rn-nodeify在Typescript中使用与常规js相同的方式吗?

[更新:有一件事解决了。 重新启动VSCode会导致它再次执行代码validation]