自定义语言的包管理器

Package Manager for a custom language

我正在创建一种特定于我们的用例的新编程语言。我正在寻找一个已经可用的包管理器,我可以重用它来管理我的语言的依赖项。我打算使用 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?

经过更多研究,我发现了这个 post - Can I distribute non javascript files via npm?

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

Packages that are not functionally compatible with the npm command-line client. For example, a "package" cannot simply be a PNG or JPEG image, a movie file, or a text document uploaded directly to the registry. Using the Public Registry as a general purpose database is not allowed.