npm命令了解软件包中的实用性

时间:2020-09-04 11:34:08

标签: javascript npm

在将程序包导入到我的代码时,例如:

import { Text, View, StyleSheet } from "react-native";

我怎么知道软件包Text中可用的Viewreact-native等实用工具功能的完整列表?

是否存在任何npm命令。我在https://www.npmjs.com/package/react-native中也找不到任何这样的列表/文档。

2 个答案:

答案 0 :(得分:1)

您无法完全运行npm命令,因为npmnode的软件包管理器,在npm中运行的命令将用于软件包管理,而在node本身中运行的命令是获得实用程序功能所需要的。

我对此进行了大量研究,找到了一个解决方案。您要做的是,在安装要使用npm检查的软件包之后,假设它是discord.js

npm install discord.js

现在,直接运行节点,不需要index.js或任何其他文件。

node

然后,使用以下命令:

Object.keys(require('discord.js'))

在节点中时,这将返回其所有实用程序的列表。当然,该示例使用的是discord.js,尽管它可以是具有实用程序功能的任何npm软件包。

这应该返回如下内容:

[
  'BaseClient',             'Client',                 'Shard',
  'ShardClientUtil',        'ShardingManager',        'WebhookClient',
  'ActivityFlags',          'BitField',               'Collection',
  'Constants',              'DataResolver',           'BaseManager',
  'DiscordAPIError',        'HTTPError',              'MessageFlags',
  'Intents',                'Permissions',            'Speaking',
  'Snowflake',              'SnowflakeUtil',          'Structures',
  'SystemChannelFlags',     'UserFlags',              'Util',
  'version',                'ChannelManager',         'GuildChannelManager',
  'GuildEmojiManager',      'GuildEmojiRoleManager',  'GuildMemberManager',
  'GuildMemberRoleManager', 'GuildManager',           'ReactionManager',
  'ReactionUserManager',    'MessageManager',         'PresenceManager',
  'RoleManager',            'UserManager',            'discordSort',
  'escapeMarkdown',         'fetchRecommendedShards', 'resolveColor',
  'resolveString',          'splitMessage',           'Base',
  'Activity',               'APIMessage',             'BaseGuildEmoji',
  'CategoryChannel',        'Channel',                'ClientApplication',
  'ClientUser',             'Collector',              'DMChannel',
  'Emoji',                  'Guild',                  'GuildAuditLogs',
  'GuildChannel',           'GuildEmoji',             'GuildMember',
  'GuildPreview',           'Integration',            'Invite',
  'Message',                'MessageAttachment',      'MessageCollector',
  'MessageEmbed',           'MessageMentions',        'MessageReaction',
  'NewsChannel',            'PermissionOverwrites',   'Presence',
  'ClientPresence',         'ReactionCollector',      'ReactionEmoji',
  'RichPresenceAssets',     'Role',                   'StoreChannel',
  'Team',                   'TeamMember',             'TextChannel',
  'User',                   'VoiceChannel',           'VoiceRegion',
  'VoiceState',             'Webhook',                'WebSocket'
]

discord.js中基本上提供了所有实用程序功能。现在,有时候,您会遇到此错误:

SyntaxError: Cannot use import statement inside the Node.js REPL, alternatively use dynamic import

这是因为我从node而不是从模块或应用程序运行它。然后,如果您在非模块软件包(例如discord.js中的漫游器)中尝试,它将返回此错误:

SyntaxError: Cannot use import statement outside a module

如果您要创建模块并从模块内部调用import,则不会出现以上两个错误。


这是因为discord.js机器人不是模块,如果我在package.json中强行定义模块,它将破坏。在这种情况下,您无法从内部进行任何操作,可以尝试查找它的文档或源代码以自行找到它。

以下是使用此命令的一些参考:

答案 1 :(得分:0)

您可以这样做

import Rn from "react-native";

console.log(Object.keys(Rn));