Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

[bug]: dist/ JS retains @agentscript/* imports after scope rewrite, breaking installed package

未关闭
#35 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
3/5
预计耗时
1-2 天
新手友好度
72/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
冷清

调研方向

从 scripts/publish.mjs 开始,检查相对于 package.json scope 重写,packages//dist/ 是如何生成的。使用提供的 npm install 和动态导入进行复现,然后检查 dist/index.js 和 dist/index.d.ts 中是否还存在 @agentscript/ 引用。完成标准是已安装的软件包能够解析其 @sf-agentscript/* 依赖,并且可以调用 parse 导出。

由索引模型根据 Issue 内容生成。

描述

bug

Summary

Installing the published npm package @sf-agentscript/agentforce@2.5.31 and importing it throws ERR_MODULE_NOT_FOUND: Cannot find package '@agentscript/parser' at runtime. The package on npm is currently unusable end-to-end.

Root cause

scripts/publish.mjs rewrites @agentscript/*@sf-agentscript/* in package.json files only (lines 14–15, 28–29). The compiled JS in packages/*/dist/ is built before this rewrite step, so the compiled output still contains literal import specifiers like:

import { parseAndHighlight } from "@agentscript/parser";

When npm installs @sf-agentscript/agentforce, dependency resolution correctly places the dep at node_modules/@sf-agentscript/parser (because the rewritten package.json lists it under that name). But the runtime code still asks for @agentscript/parser, so Node throws ERR_MODULE_NOT_FOUND.

The same issue affects the JSDoc @example blocks in dist/index.d.ts (cosmetic, but inconsistent).

Reproduction

mkdir /tmp/repro && cd /tmp/repro
npm init -y
node -e "let p=require('./package.json');p.type='module';require('fs').writeFileSync('package.json',JSON.stringify(p,null,2))"
npm install @sf-agentscript/agentforce
node --input-type=module -e "import('@sf-agentscript/agentforce').then(m => console.log(typeof m.parse))"

Actual output:

Error [ERR_MODULE_NOT_FOUND]: Cannot find package '@agentscript/parser' imported from
  /tmp/repro/node_modules/@sf-agentscript/agentforce/dist/index.js

Expected: function (the parse export is callable).

Evidence

  • node_modules/@sf-agentscript/agentforce/package.json correctly lists "@sf-agentscript/parser": "4.0.0"
  • node_modules/@sf-agentscript/agentforce/dist/index.js line ~3 reads import { ... } from "@agentscript/parser"
  • node_modules/@sf-agentscript/agentforce/dist/index.d.ts JSDoc @example blocks reference '@agentscript/agentforce' (cosmetic, lower priority)

grep -rE "from '(@agentscript|@sf-agentscript)" node_modules/@sf-agentscript/agentforce/dist/ confirms every cross-package import in dist/ uses the un-rewritten @agentscript/* scope.

Possible fixes

  1. Rewrite dist after build, before publish. Add a step to scripts/publish.mjs that walks packages/*/dist/**/*.{js,mjs,cjs,d.ts,d.mts,map} and applies the same @agentscript/@sf-agentscript/ string replace. ~20 lines. Lowest blast radius.
  2. Build after rewrite. Reorder publish steps so package.json rewrite happens before pnpm build, then build emits the new scope. But TypeScript doesn't transform import specifiers, so this alone wouldn't help — sources still say from '@agentscript/parser'. Would also require source rewrites or a tsconfig path alias.
  3. Bundler alias / path mapping during publish builds. More invasive, requires per-package config changes.

Option 1 is the smallest, safest, and most localized change. I have a draft patch ready and am happy to send a PR if this approach is acceptable.

Related

  • #6 — the install command in the README was wrong; the README fix is in #34. This issue is the runtime half of the same end-to-end user journey.
  • This is also why PR #23's installation.md troubleshooting note describes the npm visibility error: users hitting the install-side bug never get to discover the runtime-side bug.

Environment

  • Node v20.14.0 (also reproduced on v22)
  • npm 10.7.0
  • macOS arm64
  • Package: @sf-agentscript/agentforce@2.5.31 (current latest on npm at time of report)
主要语言
TypeScript
星标
267
派生
54
平均合并
48 分钟
30 天内合并 PR
1

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

salesforce/agentscript 的其他 Issue

查看 salesforce/agentscript 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。