0.2.61 • Published 4 years ago

smurf v0.2.61

Weekly downloads
64
License
-
Repository
-
Last release
4 years ago

npm.io

Require

Installation

$ npm install smurf -g

Quick Start

before we run the commands of smurf, we should have a project first

create a project

(directory structure)

project
├─┬src
│ └──...
└─.config

.config file

{
	"job": "job",	// String job name,
	"require": {
		"src": "path of requirejs.js",		//required, relative path of requirejs.js
		"mustache": "path of hogan.js",		//require by using template
		"paths": {
			"lib": "common/lib"				//alias
		}
	},

	"registry": "http://registry.npm.fe.eucita.com",	//private npm registry
														//it will downloads all dependencies by using "smurf install" command

	"exports":[						//exports files
		"index/index",				// index/index@ver.js & index/index@ver.css
		"test/test.js"				// test/test@ver.js
		"test/cssonly.css"			// test/cssonly@ver.css
									// required test/cssonly.js file
	],

	"html": [],

	"dependencies": {
		"app": "*",
		"jquery": "1.7.x",
		"hogan": "*",
		"requirejs": "*",
		"icons": "*",
		"button": "*",
		"jquery-api": "*",
		"dialog": "*",
		"switcher": "*",
		"filter-select": "*",
		"filter-select-date": "*"
	},

	"dev": {						//for rsync to server
		"host": "127.0.0.1",
		"path": "/home/q/www/project/"
	}
}

get dependencies

$ smurf install

start a server

before start server, make sure the working directory contains project

$ sudo smurf server

server has three modes, SRC|DEV|PRD

  • SRC: source mode, return every file, easy to debug
  • DEV: package mode, return a package of required files
  • PRD: product mode, return minified code
$ sudo smurf server -m DEV

pack

packing exports files

before run pack, make sure the project is working directory

$ smurf pack

result

project
├─┬dev(package directory)
│ ├─┬index
│ │ ├──index@dev.js
│ │ └──index@dev.css
│ └─┬test
│   ├──test@dev.js
│   └──cssonly@dev.css
│
├─┬src
│ ├─┬index
│ │ └──index.js
│ └─┬test
│   ├──test.js
│   └──cssonly.js
└─.config

min

minify exports files

before run min, make sure the project is working directory

$ smurf min

result

├─┬dev(package directory)
│ ├─┬index
│ │ ├──index@bc23723a6ebdd528a774264d37173293.js
│ │ └──index@db47495f5329bd6a6df53228034d4746.css
│ └─┬test
│   ├──test@dev.js
│   └──cssonly@dev.css
│
├─┬src
│ ├─┬index
│ │ └──index.js
│ └─┬test
│   ├──test.js
│   └──cssonly.js
└─.config

project
├─┬prd(product directory)
│ ├─┬index
│ │ ├──index@bc23723a6ebdd528a774264d37173293.js
│ │ └──index@db47495f5329bd6a6df53228034d4746.css
│ └─┬test
│   ├──test@version1.js
│   └──cssonly@version2.css
│
├─┬ver(versions directory)
│ ├─┬index
│ │ ├──index.js.ver (bc23723a6ebdd528a774264d37173293)
│ │ └──index.css.ver (db47495f5329bd6a6df53228034d4746)
│ └─┬test
│   ├──test.js.ver (version1)
│   └──cssonly.css.ver (version2)
│
├─┬src
│ ├─┬index
│ │ └──index.js
│ └─┬test
│   ├──test.js
│   └──cssonly.js
└─.config

sync

sync all package to target server

make sure you installed rsync (find it here http://rsync.samba.org/)

set dev environment in .config

before run sync

  • make sure the project is working directory
  • make sure you packed your project before
$ smurf sync

we also run pack and sync together

$ smurf pack && smurf sync

Hole .config file sample

{
	"job": "vs",
	"require": {
		"src": "node_modules/requirejs/index.js",
		"mustache": "node_modules/hogan/index.js",
		"prd": "node_modules/release/index.js",
		"paths": {
			"modules":"modules"
		}
	},

	"html": [{
		"name": "index.jsp",
		"title": "Viewscope",
		"domain": "static.eucita.com",
		"body": "index/index.mustache",
		"js": "index/index.js",
		"css": "index/index.css"
	},{
		"name": "manage.jsp",
		"title": "Viewscope Manage",
		"domain": "static.eucita.com",
		"body": "manage/index.mustache",
		"js": "manage/index.js",
		"css": "manage/index.css"
	}],

	"exports":[
		"index/index",
		"manage/index"
	],

	"dependencies": {
		"app": "*",
		"jquery": "1.7.x",
		"hogan": "*",
		"release": "*",
		"requirejs": "*",
		"icons": "*",
		"button": "*",
		"jquery-api": "*",
		"dialog": "*",
		"switcher": "*",
		"filter-select": "*",
		"filter-select-date": "*"
	},

	"registry": "http://registry.npm.fe.eucita.com"
}
0.2.61

4 years ago

0.2.6

4 years ago

0.2.5

5 years ago

0.2.4

6 years ago

0.2.3

6 years ago

0.2.2

6 years ago

0.2.1

6 years ago

0.2.0

6 years ago

0.1.9

6 years ago

0.1.8

6 years ago

0.1.7

7 years ago

0.1.6

7 years ago

0.1.5

7 years ago

0.1.4

7 years ago

0.1.3

7 years ago

0.1.2

7 years ago

0.1.1

7 years ago

0.1.0

7 years ago