【问题标题】:node_modules import from a directory inside what is specified in "main" (package.json)?node_modules 从“main”(package.json)中指定的目录中导入?
【发布时间】:2018-10-28 12:31:17
【问题描述】:

是否可以从“main”指向的其他东西导入?

在我安装到 node_modules 的库中,我将 main 设置为

lib/index.js

所以(使用es2015导入-源码是ts编译的js),我可以做

import { FunctionA, FunctionB } from 'MyTestLibrary';

之所以有效,是因为这些函数是在 libs 下的 index.js 中导出的。

我在导出functionC和functionD的目录中也有一个索引,结构在这里

/lib/otherdir/index.js

如果我像这样进行导入

import { FunctionC, FunctionD } from 'MyTestLibrary/otherdir';

我的 IDE 没有抱怨,但运行应用程序我得到了一个

Cannot find module MyTestLibrary/otherdir

一切都按原样导出。

【问题讨论】:

  • 你可以试试这个:'../../yourLibraryName'(或)'././yourLibraryName'
  • 库安装在本地 node_modules 中,它不是文件。文件确实有效,但在 node_modules 中,它似乎只尊重 package.json 中 main 指向的文件

标签: node.js typescript npm ecmascript-6


【解决方案1】:

你可以像这样直接访问目录:

import { FunctionC, FunctionD } from 'MyTestLibrary/lib/otherdir'

【讨论】:

  • 行得通!那么这背后的理解是什么?因此,如果您需要访问任何目录,那么我需要包含 lib。我想正常情况是每个人都导出 lib/index.js 下需要的所有内容,以便使用 main ?
  • 单独使用包名将使用 package.json 中指定为 'main' 的文件。如果要导入任何其他文件,则只需导航到包目录中的任何位置。
猜你喜欢
  • 2019-04-21
  • 2014-12-05
  • 2021-12-16
  • 2020-02-20
  • 2022-10-24
  • 2017-04-19
  • 1970-01-01
  • 2018-10-25
  • 1970-01-01
相关资源
最近更新 更多