首页 > 解决方案 > 自定义语言的包管理器

问题描述

我正在为我们的用例创建一种新的编程语言。我正在寻找一个已经可用的包管理器,我可以重用它来管理我的语言的依赖项。我计划使用npm作为包管理器,因为它非常流行且易于使用。

例如,包含新语言的包可能如下所示:

pkgA/
 helloworld.me # my language
 package.json

并安装了依赖项:

pkgA/
  node_modules/
    pkgB/
      hithere.me
      package.json
  helloworld.me
  package.json
  package-lock.json

在代码中,语言及其编译器将有自己的方式来解析引用。

# helloworld.me
> "hello world"

使用依赖

# helloworld.me
import pkgB.hithere

> "hello world"
< hithere

我一直在探索以下问题的答案。如果您已经做过类似的事情,那将是非常棒且非常有帮助的。

  1. 可以npm与任何其他语言一起使用吗?
  2. 这是个好主意还是坏主意?
  3. npm平台可能有任何限制吗?
  4. 是否有任何其他专门设计为与语言无关的包管理器?还是我必须建立自己的 PM?

标签: node.jsnpmpackagepackage-managers

解决方案


经过更多研究,我发现这篇文章 -我可以通过 npm 分发非 javascript 文件吗?

根据条款,似乎不允许将 npm 用于其他不兼容的语言。

与 npm 命令行客户端功能不兼容的包。例如,“包”不能简单地是直接上传到注册表的 PNG 或 JPEG 图像、电影文件或文本文档。不允许将公共登记处用作通用数据库。


推荐阅读