模块入口文件在 package.json 中进行描述,通常使用 main, browser, module, exports 等字段。本文将对各字段的意义与诞生原因、优先级进行说明。并以 Node、Webpack、Vite 为例,对比模块入口处理上的差异。字段…
main/module 和 exports的关系 exports省略场景 如果没有子路径,比如m没有my-package/xxx,只是简单的my-package, 那配置可以简化为: {...,"main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts",...} exports不可省略场景 存在子路径,此时需要添加exports进行路径映射,...
package.json main 作用 在package.json 文件中,"main" 字段指定了这个包在被其他包依赖时,入口文件的文件名。 例如,如果在 package.json 中的 "main" 字段被设置为 "index.js",那么在其他包依赖这个包时,就会自动引用这个包的 "index.js" 文件。 "main" 字段的值通常是一个相对路径,指向一个 JavaScript ...
验证package.json是否具有有效的"main"条目可以通过以下步骤进行: 打开项目的根目录,找到package.json文件。 使用文本编辑器打开package.json文件。 在文件中找到"main"条目,它应该位于顶层的键值对中。 确认"main"条目的值是一个有效的文件路径,该路径应该相对于项目根目录。 如果"main"条目的值是一个JavaScript...
main main 字段就是当你import一个组件时的入口。比如element-ui,当我们引入时: importElementUIfrom'element-ui'; 系统会默认寻找main入口,显然,我们需要指定其打包目录lib作为入口,而当不指定main 字段时,默认值是模块根目录下面的 index.js 。 看一下element-ui的package.json: ...
其package.json 文件: "main":"lib/index.js",// main"module":"lib/index.mjs",// module// browser 可定义成和 main/module 字段一一对应的映射对象,也可以直接定义为字符串"browser": {"./lib/index.js":"./lib/index.browser.js",// browser+cjs"./lib/index.mjs":"./lib/index.browser.mjs...
其package.json 文件: "main": "lib/index.js", // main "module": "lib/index.mjs", // module // browser 可定义成和 main/module 字段一一对应的映射对象,也可以直接定义为字符串 "browser": { "./lib/index.js": "./lib/index.browser.js", // browser+cjs ...
其package.json 文件: "main": "lib/index.js", // main "module": "lib/index.mjs", // module // browser 可定义成和 main/module 字段一一对应的映射对象,也可以直接定义为字符串 "browser": { "./lib/index.js": "./lib/index.browser.js", // browser+cjs ...
要回答您的第一个问题,加载模块的方式取决于模块入口点和package.json的主要参数。 假设您具有以下文件结构: my-npm-module |-- lib| |-- module.js|-- package.json 如果package.json中没有 main 参数,您必须通过提供模块入口点来加载模块:require('my-npm-module/lib/module.js')。
// package.json { "name": "dep", "main": "./dist/index.js"}const dep = require('dep')// 等同于const dep = require('dep/dist/index.js')module moduele 是 ESM 导入时的寻找字段,若没有则引入 main 字段。所以一般库 CommonJS 放在 main, ESM 放在 module 字段 main: './dist/i...