摸索着各种蛋疼中,终于搞定搞明白了,下面就流程说一下(我的操作系统是win7):
1.nodejs的环境你有吧,你没有,别看了,你没有你搜这个干毛啊……
2.进入Node.js command prompt
3.安装spm和git(不装git会导致spm的init安装异常)

npm install spm -g

去git官网下载安装git:http://git-scm.com/
安装完毕后,需要设定git的cmd目录环境变量到PATH里,右键计算机-属性-高级系统设置-环境变量,如下图设置(下图是截取的XP的,和win7是一样的)


4.安装必须的插件

npm install spm-init -g
npm install spm-build -g
npm install spm-deploy -g

上面这三指令分别安装的是用于创建package.json、打包、发布功能的插件。
5.安装完提示“Please set environment variable NODE_PATH”
可以参考昨天写的博文进行设置环境变量的操作,设置完毕重启Node.js command prompt。
6.设置完毕就可以进入到你的css或者js的目录了,里面要有package.json,可以通过spm init来创建,别的方法嘛我不太清楚,话说我其实是照猫画虎手动创建的,内容如下:

{
  "family": "member",
  "name": "login",
  "version": "1.0.0",
  "description": "login of project name",
  "homepage": "",
  "author": "author name",
  "maintainers": [
    "author name"
  ],
  "repository": {
    "type": "git",
    "url": "''"
  },
  "bugs": {
    "url": ""
  },
  "keywords": [],
  "licenses": "MIT",
  "spm": {
    "output": ["*"],
    "alias": {},
    "devAlias": {},
    "engines": {}
  }
}

7.然后执行

spm build

就可以打包到dist了
8.配置位于spm-deploy下的Gruntfile.js(找不到自己用everything搜)
说明示例:

module.exports = function(grunt) {
  var path = require('path');
  var spmrc = require('spmrc');
  var default_host = 'demo.aaaaa.com';//SSH上传服务器的域名
  var host = grunt.option('host') || spmrc.get('deploy.host') || default_host;
  var pkg = grunt.file.readJSON('package.json');
  grunt.initConfig({
    pkg: pkg,
    target: grunt.option('target') || 'dev',
    scp: {
      options: {
        username: grunt.option('username') || 'xxxx',//服务器的账号
        password: grunt.option('password') || '*****',//密码
        host: host,
        log: function(o) {
          var dest = o.destination.replace('/opt/Nginx/html/', '');//要存放的路径位置(该处貌似是要过滤替换掉)
          var base = grunt.template.process(host);
          grunt.log.writeln('online http://' + base + dest);
        }
      },
      assets: {
        files: [{
          cwd: 'dist',
          src: '**/*',
          filter: 'isFile',
          dest: '/opt/Nginx/html/<%= pkg.family %>/<%= pkg.name %>/<%= pkg.version %>'
          //要存放的路径位置
        }]
      }
    }
  });
  var rootdir = require.resolve('grunt-scp');
  grunt.loadTasks(path.join(path.dirname(rootdir), 'tasks'));
};

9.配置完毕就可以通过执行

spm deploy

进行打包后的文件的上传了。

上文git部分的图片引用自:http://drupalchina.cn/content/windows-xi-tong-xia-gitan-zhuang-tu-jie

Related Posts: SeaJS-spm-build-deploy-打包发布零基础教程 :