Npm 发布Atom包时如何包含静态资源
我正在开发一个需要一些静态资源的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步骤,
package.json
中定义scripts.prepublish
,调用脚本下载外部资源预发布
脚本似乎没有执行,
因此,安装包时不需要静态资源
奇怪的是,如果我使用apm install REPOREF
而不是apm install PKGNAME
安装,那么就会调用prepublish
步骤,包将具有静态资源
mypackage.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