You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在项目B的package.json脚本中直接调用npm包A的utils/a.js?

Got it!要在项目B的package.json脚本里直接调用项目A的a.js,其实很简单,分两步就能搞定——先把项目A的npm包配置好可执行脚本,再在项目B里写对应的命令:

步骤1:配置项目A的npm包

首先得让你的项目A的a.js能被当作可执行脚本调用,需要做两个小操作:

  • 给a.js添加shebang行:打开项目A的utils/a.js,在文件最顶部加上这一行:
    #!/usr/bin/env node
    
    这行代码会告诉系统用Node.js来执行这个文件。
  • 在项目A的package.json里配置bin字段:这个字段用来把你的脚本映射成一个可直接调用的命令。比如你可以这样写:
    {
      "name": "project-a",
      "version": "1.0.0",
      // 其他字段(比如dependencies、main等)...
      "bin": {
        "execute-a": "./utils/a.js"
      }
    }
    
    这里的execute-a是你自定义的命令名,后面的路径是a.js在项目A里的相对路径。如果想直接用项目A的包名作为命令,也可以简化成:
    "bin": "./utils/a.js"
    
  • (本地开发可选)如果还没发布npm包,想先本地测试的话:
    1. 在项目A的根目录执行npm link,把本地包注册到全局
    2. 去项目B的根目录执行npm link project-a,把本地的项目A链接到项目B的依赖中
步骤2:在项目B里配置脚本

现在项目A的包已经配置好了,去项目B的package.json里添加脚本:

{
  "name": "project-b",
  // 其他字段...
  "scripts": {
    "run-a": "execute-a"
  }
}

这里的execute-a就是你在项目A的bin字段里定义的命令名。

之后你只要在项目B的根目录执行:

npm run run-a

就能直接调用项目A里的a.js啦!

备选方案(无需修改项目A配置)

如果暂时不想调整项目A的配置,也可以直接在项目B的脚本里用node命令指定路径:

"scripts": {
  "run-a": "node node_modules/project-a/utils/a.js"
}

不过这种方式依赖node_modules里的固定路径,不如配置bin字段灵活优雅,更推荐第一种方法。

内容的提问来源于stack exchange,提问作者Yatin Kanyal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 15:42:35