Mir*_*ili 5 javascript module export package-private npm
在 Java 中,我们有 4 个可见性级别。除了public和 之外private,我们还有protected级别和默认级别(没有修饰符),也称为“package-local”或“package-private”。
| 修饰符 | 班级 | 包裹 | 子类 | 世界 |
|---|---|---|---|---|
| 民众 | 是 | 是 | 是 | 是 |
| 受保护的 | 是 | 是 | 是 | X |
| 无修饰符 | 是 | 是 | X | X |
| 私人的 | 是 | X | X | X |
请参阅:https ://www.programcreek.com/2011/11/java-access-level-public-protected-private/
我特别需要 Javascript 中的“包私有”级别。Javascript 模块有类似的方法吗?
我正在编写一个库(NPM包),并且我想要export一些东西(function、class等),但不在模块的公共 API 中(由库的使用者使用)。只是为了在我的模块文件之间本地使用。
Node.js 有一个在“package.json”exports中定义的选项:
https: //nodejs.org/api/packages.html#exports
它可以控制消费者可以导入哪些文件(以及如何导入)。它有很多选项,不幸的是上面的官方参考文献中没有记录这些选项。
例如,请参阅我的包的“package.json”smart-color:
"exports": {
"./*" : "./lib/*",
"./Color" : "./lib/Color.js",
"./ColorCustomInspect" : "./lib/ColorCustomInspect.js",
"./convertors" : "./lib/convertors.js",
"./luminance" : "./lib/luminance.js",
"./luminanceInverter" : "./lib/luminanceInverter.js",
"./recolorFilter" : "./lib/recolorFilter.js",
"./web-colors" : "./lib/web-colors.js"
},
Run Code Online (Sandbox Code Playgroud)
上述配置使消费者能够以这种方式访问该import文件:"./lib/Color.js"
import Color from 'smart-color/Color' // Not from '.../lib/Color[.js]'
Run Code Online (Sandbox Code Playgroud)
作为其他示例,请参阅package的“package.json”dotenv和package的“package.json”server-only。
| 归档时间: |
|
| 查看次数: |
991 次 |
| 最近记录: |