您如何找出节点/ npm软件包导出的功能?

时间:2020-05-16 18:03:59

标签: javascript node.js npm ecmascript-6 node-modules

在我的earlier questionimport上的Mozilla documentation之后,我现在知道我必须做类似以下的事情才能在模块中使用该功能:

  1. import * as name from "module";
  2. import {functionName} from "module";

由于使用CommonJS,我从没想过哪个函数是由包导出的,因为我以前曾经require像这样:

const vueServerRenderer = require('vue-server-renderer') // get the module
vueServerRenderer.createRenderer() // use a function in that module

某人如何找出诸如expressvueServerRenderer之类的模块正在导出哪些函数,所以我知道如何使用正确的import语句,如:

import express from 'express'而不是import * as express from 'express'

2 个答案:

答案 0 :(得分:1)

您需要阅读模块源代码。

每个export语句都会导出内容。它可以是函数,数组,字符串,类等。

每个export不含default的语句都需要在导入时进行解构:

import { NonDefaultThing1, NonDefaultThing2 } from 'somewhere'

带有export的{​​{1}}语句必须不带default的情况下直接导入:

{}

某些模块具有默认导出,但也具有非默认导出。您可以选择要导入的内容:

import DefaultThing from 'somewhere'

如果使用可以解析javascript的IDE(例如Microsoft Visual Studio Code),则可以获取import DefaultThing, { NonDefaultThing7 } from 'somewhere' 语句的自动补全/智能。甚至有一些插件可以自动导入:只需使用类或函数或模块中的某些内容,它将自动在文件顶部添加所需的import语句。

答案 1 :(得分:0)

TLDR:default导出。

假设一个名为“模块”的特定库具有以下代码

function functionName() {
  // function body
}

export default functionName;

现在,在您的代码中,如果您输入

import blah from "module";

然后blah将指向functionName