Security News
PyPI Introduces Digital Attestations to Strengthen Python Package Security
PyPI now supports digital attestations, enhancing security and trust by allowing package maintainers to verify the authenticity of Python packages.
相关文档可以查看 wiki
首先需要安装 node 和 npm: http://nodejs.org/#download
然后有两种安装方式:
$ sudo npm install spm -g
$ git clone https://github.com/seajs/spm.git
$ cd spm
$ sudo npm install -g
目前我们的打包是基于配置文件,而且对模块的目录结构也有一定的要求,所以需要先了解下基本的目录结构和典型的配置文件。
dist/
example-debug.js
example.js
examples/
src/
example.js
tests/
package.json
README.md
其中 dist 目录存放的是我们打包好的模块,也就是最终上线使用的模块文件。
{
"name": "example",
"version": "1.0.0",
"dependencies": {
"$": "$",
"handlebars": "1.0.0",
"base": "#base/0.9.16/base"
},
"output": {
"name.js": ".",
"name2.js": ['n1.js', 'n2.js']
}
}
handlebars/1.0.0/handlebars
的一种简化形式由于打包的时候我们需要计算依赖关系,所以我们根据用户配置的依赖需要找到具体的模块,我们目前是通过源来完成的,对于一些标准模块 我们会提供统一的源服务,而对于用户的一些私有模块,我们也提供了命令可以方便用户快速的搭建自己的私有源服务.后面也会有相关源的介绍.
目前支持多种写法,最常用的就是上面两种:
总之SPM 目前说简单点就是根据模块的配置文件,然后计算模块的依赖,并替换相关依赖,并把需要的文件合并起来,然后输出标准的CMD模块.
对于配置文件更详细的内容可以参看下面两个内容:
对于具体的例子,可以参考我们已经开放出去的模块:
目前我们的命令大概可以分为两类.
根据package.json的配置打包模块并输出到dist目录:
$ spm build
其中有下面相关设置:
-compiler=closure // 使用google closure compile 进行压缩
-v --verbose // 打印debug信息, 方便调试
打包模块(build),并把打包好后的dist目录的内容按照我们的定义上传到源服务中 方便其他人使用.
$ spm upload
其中build的参数也都适用,有一个新增加的:
--only // 只进行上传,不会执行build操作.
打包模块,并上传源服务,而且根据用户配置的远程服务器信息,可以把dist下面的内容scp到远程服务器. 具体的配置信息参看:
其中参数和upload的一致.
获取所有的 seajs 兼容新模块到当前目录.
$ mkdir libs
$ cd libs
$ spm install all
也可以获取指定模块:
$ spm install jquery@1.7.2
查看更多详情:
$ spm help install
创建一个标准模块:
$ mkdir module
$ cd module
$ spm init
可指定模块的 root,这个配置可查看 package.json
$ spm init -r alipay
你可以通过 transport
去包装一些非标准模块:
$ cd path/to/modules
$ mkdir xxx
$ cp jquery/transport.js xxx/
$ vi xxx/transport.js # modify it
$ spm transport xxx/transport.js
在当前目录启用源服务, 端口为 8000
$ spm server -p 8000
这样使用者可以在内网部署此服务,可以把模块部署到此服务,其他用户也可以从这个服务获取里面的模块.
如果一个服务想对多个系统(也就是模块配置有不同的root)提供服务的话
$ spm server -p 8001 --mapping
FAQs
Static Package Manager
The npm package spm receives a total of 4 weekly downloads. As such, spm popularity was classified as not popular.
We found that spm demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 8 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
PyPI now supports digital attestations, enhancing security and trust by allowing package maintainers to verify the authenticity of Python packages.
Security News
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.