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
经过数小时的调试和推送无用的路径版本,如果我发现这是由于我的 .gitignore
*.js
因此,生成的 js 文件没有被推送到 npm,因此出现错误。
我创建了一个新的基于 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
经过数小时的调试和推送无用的路径版本,如果我发现这是由于我的 .gitignore
*.js
因此,生成的 js 文件没有被推送到 npm,因此出现错误。