问题是这样的。将我的第一个包发布到 NPM。当我从另一个项目安装它并尝试连接它时,由于某种原因,它会自动在 src/scripts 文件夹中查找某个文件,我得到以下信息 -
import МОЙ_ПАКЕТ from "МОЙ_ПАКЕТ/src/scripts/development.js";
src 文件夹下的 development.js 文件有什么关系,我不明白。在主 package.json 字段中,我指出了我需要的路径(到 dist 文件夹)。它有效,但前提是你不使用 ES6 模块
const x = require('МОЙ_ПАКЕТ');
这给出了期望的结果。但是使用 import 时,它指定了 src/development.js 文件的完整路径,并且不选择 dist/production.js。如何指定导入的入口点?
npm 包的入口点
package.json
在main
. 之后就可以在下载中使用包名import МОЙ_ПАКЕТ from "МОЙ_ПАКЕТ";
在这种情况下,很大程度上取决于用于构建 npm 包的模块类型。建议在 UMD 中构建,因为它们兼容 CommonJS 和 ES 模块。我一直在 CommonJS 中编译并将它们与 ES 模块一起使用没有任何问题,但是如果您构建为 ES 模块,则在使用 require 包含它们时可能会遇到问题(但这并不准确)。
在这种情况下,
const x = require('МОЙ_ПАКЕТ');
我选择了入口点,因为它是在 中指定的dist/prod
,并import МОЙ_ПАКЕТ from "МОЙ_ПАКЕТ/src/scripts/development.js";
引用了导出文件 MY_PACKAGE 的名称,该文件是从/src/scripts/development.js
. 由于在dist/prod
. 它失去了原来的名称 MY_PACKAGE,已被汇编程序替换为 M_P。它只是在导入时寻找匹配项。