Skip to content

Commit 2c82ecd

Browse files
author
AceMood
committed
dev
1 parent a256971 commit 2c82ecd

15 files changed

+155
-255
lines changed

HISTORY.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
## ChangeLog
22

33
### `v1.0.0`
4-
版本升级, 代码重构和优化, 目前在dev分支进行
4+
* 版本升级, 代码重构和优化, 目前在dev分支进行
5+
6+
### `v0.12.0`
7+
* 增加noname配置
8+
* 修复tpl中占位符bug
59

610
### `v0.10.12`
711
* swf编译不生成唯一名

bin/soi

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
#!/usr/bin/env node
22

3-
require('../lib/cli').run();
3+
require('../lib/cli').run();

demo-conf.js

-86
This file was deleted.

lib/DeployTask.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ var Task = require('./Task');
3333
var fs = require('fs');
3434

3535
class DeployTask extends Task {
36-
constructor(name, options, soiOptions, args, map) {
37-
super(name, options, soiOptions, args, map);
36+
constructor(name, options, soiOptions, args) {
37+
super(name, options, soiOptions, args);
3838
}
3939

4040
flushInternal() {

lib/ReleaseTask.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ var node_url = require('url');
3232
var Task = require('./Task');
3333

3434
class ReleaseTask extends Task {
35-
constructor(name, options, soiOptions, args, map) {
36-
super(name, options, soiOptions, args, map);
35+
constructor(name, options, soiOptions, args) {
36+
super(name, options, soiOptions, args);
3737
}
3838

3939
flushInternal() {

lib/Task.js

+5-8
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,12 @@ var name2plugin = require('./name2plugin');
3737
class Task extends EventEmitter {
3838
/**
3939
* 扫描器后的工作流任务
40-
* @param {string} name 任务名称
41-
* @param {?object=} options 任务配置对象
42-
* @param {?object=} soiOptions
43-
* @param {?object=} args
44-
* @param {?ResourceMap=} map
45-
* @constructor
40+
* @param {string} name 任务名称
41+
* @param {?object=} options 任务配置对象
42+
* @param {?object=} soiOptions
43+
* @param {?object=} args
4644
*/
47-
constructor(name, options, soiOptions, args, map) {
45+
constructor(name, options, soiOptions, args) {
4846
super();
4947

5048
this.name = name;
@@ -53,7 +51,6 @@ class Task extends EventEmitter {
5351
this.options = options;
5452
this.args = args; //包含命令行相关参数
5553
this.soiOptions = soiOptions;
56-
this.map = map;
5754

5855
soi.util.seal(this, [
5956
'addRule', 'use', 'run', 'setArgs', 'setMap', 'applyPlugin', 'config',

lib/cli.js

+2-3
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ function printHelp(argv) {
7474
/**
7575
* 处理命令行命令及参数
7676
*/
77-
function processArgs() {
77+
function run() {
7878
var confFile = 'soi.conf.js';
7979
var arg = argv.parse(process.argv);
8080
var cmd = arg._.shift();
@@ -116,5 +116,4 @@ function processArgs() {
116116
}
117117
}
118118

119-
// 导出
120-
exports.run = processArgs;
119+
exports.run = run;

lib/profiler.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -74,5 +74,5 @@ exports.log = function(tokenStart, tokenEnd, tree) {
7474
var t0 = cur.find(tokenStart);
7575
var t1 = cur.find(tokenEnd);
7676

77-
soi.log.info(`From ${tokenStart} ==> ${tokenEnd} consume ${(t1 - t0)} ms`);
77+
console.log(`From ${tokenStart} ==> ${tokenEnd} consume ${(t1 - t0)} ms`);
7878
};

lib/soi.js

+5-4
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ Object.defineProperty(global, 'soi', {
5050
value: soi
5151
});
5252

53-
soi.log = new log.Logger(log.Level.ALL);
53+
soi.log = new log.Logger(log.Level.WARNING);
5454
soi.util = require('./util');
5555
soi.fn = require('./util/func');
5656
soi.Loaders = Neo.Loaders;
@@ -108,10 +108,11 @@ soi.run = function(taskType, taskName, argv) {
108108
new Loaders.ImageLoader()
109109
]);
110110

111+
task.options.logger = soi.log;
111112
let neo = new Neo(
112-
loaders,
113-
task.options.scandirs,
114-
task.options
113+
loaders,
114+
task.options.scandirs,
115+
task.options
115116
);
116117

117118
profiler.record('scan:start');

lib/util.js

+28-46
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ var fs = require('fs'),
3535
var _util = module.exports = {};
3636

3737
_util.toString = Object.prototype.toString;
38-
_util.isArray = util.isArray;
3938
_util.exists = fs.existsSync || path.existsSync;
4039

4140
/**
@@ -47,22 +46,6 @@ _util.isObject = function(o) {
4746
return Object.prototype.toString.call(o) === '[object Object]';
4847
};
4948

50-
/**
51-
* 判断对象是否为空,
52-
* @param {*} obj
53-
* @returns {Boolean}
54-
*/
55-
_util.isEmpty = function(obj) {
56-
if (obj == null) return true;
57-
if (_util.isArray(obj)) return !!obj.length;
58-
for (var key in obj) {
59-
if (obj.hasOwnProperty(key)) {
60-
return false;
61-
}
62-
}
63-
return true;
64-
};
65-
6649
/**
6750
* 是否为一个文件
6851
* @param {string} fpath 路径
@@ -361,46 +344,45 @@ _util.writeFile = function(fpath, content, options, callback) {
361344
};
362345

363346
/**
364-
* 合并Object
365-
* @param {object} target 需要合并到的对象
366-
* @param {object} src 合并对象
367-
* @param {boolean} deep 是否深度复制
368-
* @returns {*}
347+
* 合并两个对象
348+
* @param {!object} target 需要合并到的对象
349+
* @param {...object} src 待合并对象
350+
* @returns {!object}
369351
*/
370-
_util.merge = function(target, src, deep) {
371-
if (!deep) {
372-
for(var k in src) {
373-
target[k] = src[k];
374-
}
375-
}
376-
else {
377-
if (_util.isObject(src)) {
378-
for (var key in src) {
379-
if (_util.isObject(src[key])) {
380-
target[key] = _util.merge(target[key] || {}, src[key], deep);
381-
} else if (_util.isArray(src[key])) {
382-
target[key] = _util.merge(target[key] || [], src[key], deep);
352+
_util.merge = function(target, src) {
353+
function merge(target, obj) {
354+
if (_util.isObject(obj)) {
355+
Object.keys(obj).forEach(key => {
356+
if (_util.isObject(obj[key])) {
357+
target[key] = _util.merge(target[key] || {}, obj[key]);
358+
} else if (Array.isArray(obj[key])) {
359+
target[key] = _util.merge(target[key] || [], obj[key]);
383360
} else {
384-
target[key] = src[key];
361+
target[key] = obj[key];
385362
}
386-
387-
}
388-
} else if (_util.isArray(src)) {
389-
for (var i = 0; i < src.length; ++i) {
390-
if (_util.isObject(src[i])) {
363+
});
364+
} else if (Array.isArray(obj)) {
365+
obj.forEach((item, i) => {
366+
if (_util.isObject(item)) {
391367
target[i] = target[i] || {};
392-
target[i] = _util.merge(target[i], src[i], deep);
393-
} else if (_util.isArray(src[i])) {
368+
target[i] = _util.merge(target[i], item);
369+
} else if (Array.isArray(item)) {
394370
target[i] = target[i] || [];
395-
target[i] = _util.merge(target[i], src[i], deep);
371+
target[i] = _util.merge(target[i], item);
396372
} else {
397373
target[i] = src[i];
398374
}
399-
}
375+
});
400376
} else {
401377
target = src;
402378
}
403379
}
380+
381+
var objects = Array.prototype.slice.call(arguments, 1);
382+
objects.forEach(obj => {
383+
merge(target, obj);
384+
});
385+
404386
return target;
405387
};
406388

@@ -410,7 +392,7 @@ _util.merge = function(target, src, deep) {
410392
* @param {Array} props
411393
*/
412394
_util.seal = function(obj, props) {
413-
props.forEach(function(prop) {
395+
props.forEach(prop => {
414396
Object.defineProperty(obj, prop, {
415397
writable: false,
416398
enumerable: true,

package.json

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
{
22
"name": "soi",
33
"version": "1.0.0",
4-
"description": "Build tools for projects using kerneljs as module loader",
4+
"description": "Build Tools for Front-End projects",
55
"directories": {
66
"test": "test"
77
},
8-
"main": "boot.js",
8+
"main": "soi.js",
99
"scripts": {
10-
"test": "mocha --timeout 60000 ./__test__/**/*-Spec.js"
10+
"test": "mocha --timeout 60000 ./test/**/*-Spec.js"
1111
},
12-
"bin": {},
12+
"bin": "./bin/soi",
1313
"repository": {
1414
"type": "git",
1515
"url": "https://github.com/Saber-Team/soi.git"
1616
},
1717
"keywords": [
1818
"Static Resource Management",
1919
"Front End",
20-
"Resource Map"
20+
"Build Tools"
2121
],
2222
"author": "AceMood, XCB, songjin",
2323
"license": {

0 commit comments

Comments
 (0)