如何从作用域节点包中导入特定文件?

时间:2018-09-29 19:45:42

标签: node.js npm import scope node-modules

如何从范围限定的导入包中导入子目录或文件?

例如,我完全可以可以做到

import array from "lodash/array"

但是,一旦确定我的软件包的范围,array.js文件(或array/index.js)就变得不可用,因为以下无效

import array from "@myscope/lodash/array"

1 个答案:

答案 0 :(得分:0)

基于@estus'的提示,我检查了@ angular / common / http(https://github.com/angular/angular/tree/master/packages/common/http),并尝试复制其文件结构和package以了解发生了什么。

显然,您只能从具有特定文件结构的合并范围的软件包中进行深度导入,这将跳过dist或任何其他包含捆绑文件的目录。您需要直接将目录或文件直接包含在作用域包中。

无效示例:

node_modules/@angular/common/dist/http/index.js

在这里,无论您如何设置import http from "@angular/common/http",您都将不能执行package.json。这是我将作用域包捆绑在一起的结构。

工作示例:

node_modules/@angular/common/http/index.js

在这里您能够执行import http from "@angular/common/http"。您甚至不需要node_modules/@angular/common/http/package.jsonnode_modules/@angular/common/package.json就足够了。