如何从范围限定的导入包中导入子目录或文件?
例如,我完全可以可以做到:
import array from "lodash/array"
。
但是,一旦确定我的软件包的范围,array.js
文件(或array/index.js
)就变得不可用,因为以下无效:
import array from "@myscope/lodash/array"
答案 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.json
,node_modules/@angular/common/package.json
就足够了。