如何在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]