Skip to content
This repository has been archived by the owner on Aug 15, 2018. It is now read-only.

spm 2, 3 共存方案

afc163 edited this page Jan 18, 2016 · 17 revisions

背景

由于 2 和 3 将会共存一段时间,而直接通过 $ npm install spm -g 安装 3 会覆盖原来的 2,所以这里提供一个方案,在不影响 2 使用的基础上安装 3 。

安装脚本

git clone https://github.com/spmjs/spm ~/.spm3
cd ~/.spm3
cnpm install
ln -sf `pwd`/bin/spm /usr/local/bin/spm3

至此,spm -V 应该是 2,spm3 -V 应该是 3 。

安装脚本 II

上面的方案是在不影响 spm2 的情况下,安装 spm3,因此 spm -V == 2.x,而 spm3 -V == 3.x

但是对于多数情况下使用 spm3 的用户, @hotoo 我个人推荐倒过来,默认的 spm -V == 3.x,而 spm2 -V == 2.x,更多的,spm3 -V == 3.x

git clone -b 2.x --depth 1 https://github.com/spmjs/spm ~/.spm2
cd ~/.spm2
npm install
ln -sf `pwd`/bin/spm /usr/local/bin/spm2

npm install spm -g
ln -sf /usr/local/bin/spm /usr/local/bin/spm3

然后你可以修改使用 spm2 的仓库的 Makefile 了。

注意:这个方案暂时可能不适合安装和使用 apm 的同学。

Windows环境

Windows下通过clone安装需要自己编写下cmd脚本,把spm3加到PATH环境变量中(假设也是clone到当前用户根目录的.spm3目录,在.spm3/bin目录下将spm更名为spm3,新建spm3.cmd文件,输入以下内容)

@echo off
set NODE_PATH=C:%HOMEPATH%\.spm3\node_modules
@echo on

@IF EXIST "%~dp0\node.exe" (
  "%~dp0\node.exe"  "%~dp0\spm3" %*
) ELSE (
  node  "%~dp0\spm3" %*
)

插件使用

原有的其他插件和子命令可以保持原来的用法。比如 init:

  • 在 spm2 模块中使用。

    $ spm init
    
  • 在 spm3 模块中使用。

    $ spm3 init
    

另外两个兼容的插件 status 和 deploy

结论是 spm-status 不再升级,去掉。

spm-deploy 的 1.x 版本只对 spm3 项目进行兼容,需要安装旧版 spm deploy 的就运行 npm install spm-deploy@0.x -g。不再提供共存方案。

后续内部用户对 dist 文件部署的需求,推荐使用浩初的 alipay-static 来进行。