Npm 包在本地工作,但不能与 npm repo 和 npx 一起工作

Npm package working locally but not with from npm repo with npx

我创建了一个新的基于 cli 的节点应用程序并将其发布到 npm。

当我 运行 本地包时:

npm run build

这只是 运行s rm -rf lib && tsc -b

然后

npm link
npx my-package arguments

它工作正常。


但是当我直接从 npm 运行(不是在本地并且在删除本地后)

npx my-package arguments

它给我一个导入错误。

internal/process/esm_loader.js:74
    internalBinding('errors').triggerUncaughtException(
                              ^

Error [ERR_MODULE_NOT_FOUND]: Cannot find module '/usr/local/lib/node_modules/my-package/lib/src/cli/lex.js' imported from /usr/local/lib/node_modules/my-package/lib/src/index.js

请注意为什么?

有问题的代码

#!/usr/bin/env node
import { command } from './cli/lex.js';
command.parse(process.argv);

文件夹结构

lib
 - src
 - - index.js
 - - cli
 - - - lex.js
 

ls -l /usr/local/lib/node_modules/my-package/lib/src/cli

的输出
-rw-r--r--  1 root  wheel  1893 Oct 26  1985 cli.js.map
-rw-r--r--  1 root  wheel   402 Oct 26  1985 lex.js.map
-rw-r--r--  1 root  wheel  2000 Oct 26  1985 parse.js.map

有地图文件但没有实际的js

Here is the file in the project (github) 如果需要。

经过数小时的调试和推送无用的路径版本,如果我发现这是由于我的 .gitignore

*.js

因此,生成的 js 文件没有被推送到 npm,因此出现错误。