1

我正在尝试在 react-native-windows 中构建 RDP 应用程序。但是即使已经安装了 os 模块,我也会遇到 Unable to resolve module os 错误。

我试过的:

  • 重置缓存
  • 删除 node_modules 文件夹并使用 npm install 再次安装。

代码:

import React, { Component } from 'react';
import { Text, View, StyleSheet, TouchableOpacity, TextInput, Button } from 'react-native';


class App extends Component {
  constructor() {
    super()
    this.state = {
      Ip: '',
      UserName: '',
      Password: '',
    }
  }

  rdp = () => {
    var rdp = require('node-rdp');

    rdp({
      address: this.state.Ip,
      username: 'DOMAIN\'+ 'this.state.UserName',
      password: this.state.Password
    }).then(function () {
      console.log('At this, point, the connection has terminated.');
    });
  }

  render() {
    return (
      <View style={styles.Main}>

        <Text style={styles.Title}>Remote Desktop Connection</Text>

        <View style={styles.container}>

          <View style={styles.InputFieldView}>
            <Text>Ip Address : </Text>
            <TextInput style={styles.InputField} onChangeText={(e) => { this.setState({ Ip: e }) }} />
          </View>

          <View style={styles.InputFieldView}>
            <Text>UserName : </Text>
            <TextInput style={styles.InputField} onChangeText={(e) => { this.setState({ UserName: e }) }} />
          </View>

          <View style={styles.InputFieldView}>
            <Text>Password : </Text>
            <TextInput style={styles.InputField} onChangeText={(e) => { this.setState({ Password: e }) }} />
          </View>

          <Button title="Submit" onPress={() => this.rdp()} />

        </View>

      </View>
    )
  }
}

const styles = StyleSheet.create({
  Main: {
    flex: 1,
    alignItems: "center"
  },

  container: {
    justifyContent: "center",
    alignItems: "center",
  },

  InputFieldView: {
    alignItems: 'flex-start',
    marginBottom: 10,
  },

  InputField: {
    width: 300,
    borderRadius: 3,
  },

  Title: {
    marginTop: 100,
    marginBottom: 40,
    fontSize: 30,
  }
})

export default App;

错误:

error: Error: Unable to resolve module os from K:\native_windows\demo\node_modules\node-rdp\lib\rdp-file.js: os could not be found within the project or in these directories:
  node_modules

If you are sure the module exists, try these steps:
 1. Clear watchman watches: watchman watch-del-all
 2. Delete node_modules and run yarn install
 3. Reset Metro's cache: yarn start --reset-cache
 4. Remove the cache: rm -rf /tmp/metro-*
  1 | var Q = require('q');
  2 | var fs = require('fs');
> 3 | var os = require('os');
    |                   ^
  4 | var path = require('path');
  5 | var defaults = require('lodash.defaults');
  6 | var sanitize = require("sanitize-filename");
    at ModuleResolver.resolveDependency (K:\native_windows\demo\node_modules\metro\src\node-haste\DependencyGraph\ModuleResolution.js:129:15)
    at DependencyGraph.resolveDependency (K:\native_windows\demo\node_modules\metro\src\node-haste\DependencyGraph.js:288:43)
    at Object.resolve (K:\native_windows\demo\node_modules\metro\src\lib\transformHelpers.js:129:24)
    at resolve (K:\native_windows\demo\node_modules\metro\src\DeltaBundler\traverseDependencies.js:396:33)
    at K:\native_windows\demo\node_modules\metro\src\DeltaBundler\traverseDependencies.js:412:26
    at Array.reduce (<anonymous>)
    at resolveDependencies (K:\native_windows\demo\node_modules\metro\src\DeltaBundler\traverseDependencies.js:411:33)
    at processModule (K:\native_windows\demo\node_modules\metro\src\DeltaBundler\traverseDependencies.js:140:31)
    at addDependency (K:\native_windows\demo\node_modules\metro\src\DeltaBundler\traverseDependencies.js:230:18)
    at async Promise.all (index 0)

将此库用于 rdp:https ://www.npmjs.com/package/cross-node-rdp

4

1 回答 1

0
var fs = require('fs');
var os = require('os');

这个库只能与 NodeJS 一起使用

于 2022-01-14T16:23:01.250 回答