Npm 发布Atom包时如何包含静态资源

Npm 发布Atom包时如何包含静态资源,npm,atom-editor,Npm,Atom Editor,我正在开发一个需要一些静态资源的Atom包。我希望以下方法能够奏效: 在package.json中定义scripts.prepublish,调用脚本下载外部资源 使用apm发布版本在Atom.io上发布Atom包 使用apm Install PKGNAME从Atom.io安装Atom包 不幸的是,预发布脚本似乎没有执行, 因此,安装包时不需要静态资源 奇怪的是,如果我使用apm install REPOREF而不是apm install PKGNAME安装,那么就会调用prepublish步骤,

我正在开发一个需要一些静态资源的Atom包。我希望以下方法能够奏效:

  • package.json
    中定义
    scripts.prepublish
    ,调用脚本下载外部资源
  • 使用apm发布版本在Atom.io上发布Atom包
  • 使用apm Install PKGNAME从Atom.io安装Atom包
  • 不幸的是,
    预发布
    脚本似乎没有执行, 因此,安装包时不需要静态资源

    奇怪的是,如果我使用
    apm install REPOREF
    而不是
    apm install PKGNAME
    安装,那么就会调用
    prepublish
    步骤,包将具有静态资源

    my
    package.json中的相关部分:

      "name": "janos-ss-prepublish-demo",
      "repository": "https://github.com/janos-ss/prepublish-demo",
      "scripts": {
        "prepublish": "node ./scripts/setup.js"
      },
      "files": [
        "files"
      ],
    
    文件
    这里是
    节点./scripts/setup.js
    下载静态资源的目录,如果包是用
    npm install
    安装的

    使用
    apm
    发布后,如果使用
    apm install janos ss prepublish demo
    安装软件包,则似乎不会执行
    prepublish
    步骤,并且软件包将没有静态资源。 如果使用
    apm install janos ss/prepublish demo
    安装包,则执行
    prepublish
    步骤,包将具有静态资源。 注意两个
    apm install
    命令的区别,第一个命令使用atom.io上发布的包的名称, 第二个使用GitHub存储库引用, 使用我的GitHub用户名和存储库的名称

    使用
    apm安装REPOREF
    安装不是一个选项, 因为它需要显式的用户操作,这是我不想要的。 我希望用户能够从atom.io安装完整的软件包,使用atom本身的软件包浏览器的自然方式

    如果我理解正确,我会确认我正在尝试做的事情目前是不可能的。我还尝试从pull请求中使用一个自定义的
    apm
    ,在官方主控的基础上重新设置,但是它仍然不起作用,所以我不确定我是否正确理解这里发生的事情

    我所做的事情有什么根本性的错误吗

    在atom.io上的包中是否有其他方法包含静态资源

    我目前的解决方法是在安装并激活包后下载静态资源。但这在运行时是不必要的复杂性,而且很难看

    一个最小的可复制包装正在启动

    复制步骤:

    apm publish patch
    apm install janos-ss-prepublish-demo
    ls ~/.atom/janos-ss-prepublish-demo  # error, doesn't exist
    apm install janos-ss/prepublish-demo
    ls ~/.atom/janos-ss-prepublish-demo  # exists