├── .gitignore
├── README.md
├── README_ZH.md
├── index.js
├── lib
├── FastUglifyJsPlugin.js
├── UglifyCache.js
├── genHash.js
└── worker.js
├── package.json
├── test
├── cases
│ └── factorial.js
├── index.js
└── webpack.config.js
└── yarn.lock
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea
2 | node_modules
3 | .DS_Store
4 | .uglify
5 | *.log
6 | test/outs
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | FastUglifyJsPlugin
5 |
6 | ## Introduction
7 | [中文文档](https://github.com/youzan/fast-uglifyjs-plugin/blob/master/README_ZH.md)
8 |
9 | compatible with webpack 2
10 |
11 | The uglify process of building project in production environment is very time consuming. It could take up to 70% of the build time. FastUglifyJsPlugin have multi-process and cache feature comparing to webpack's UglifyJsPlugin. Multi-process can utilize multicore cpu's caculation capability. Cache can minimize the need to complie code. Below is a set of performance testing data. FastUglifyJsPlugin has a way better performace.
12 |
13 | |plugin|time|
14 | |------|---------|
15 | |webpack.optimize.UglifyJsPlugin|7.4 min|
16 | |FastUglifyJsPlugin without cache|4.45 min|
17 | |FastUglifyJsPlugin with cache|36 s|
18 |
19 | test sample:29 entry,2615 modules
20 |
21 | test environment:MacBook Pro,4 core cpu,8g memory
22 |
23 |
24 | ## Installation
25 |
26 | ```shell
27 | npm i fast-uglifyjs-plugin --save
28 |
29 | # or
30 |
31 | yarn add fast-uglifyjs-plugin
32 | ```
33 |
34 | ## Configuration
35 | FastUglifyJsPlugin is base on webpack.optimize.UglifyJsPlugin. They have the same usage except for a few extra configuration.
36 |
37 | ```js
38 | var FastUglifyJsPlugin = require('fast-uglifyjs-plugin');
39 |
40 | module.exports = {
41 | entry: {...},
42 | output: {...},
43 | plugins: [new FastUglifyJsPlugin({
44 | compress: {
45 | warnings: false
46 | },
47 | // set debug as true to output detail cache information
48 | debug: true,
49 | // enable cache by default to improve uglify performance. set false to turn it off
50 | cache: false,
51 | // root directory is the default cache path. it can be configured by following setting
52 | cacheFolder: path.resolve(__dirname, '.otherFolder'),
53 | // num of worker process default ,os.cpus().length
54 | workerNum: 2
55 | })]
56 | };
57 | ```
58 | ### Licence
59 | [MIT](https://zh.wikipedia.org/wiki/MIT%E8%A8%B1%E5%8F%AF%E8%AD%89)
--------------------------------------------------------------------------------
/README_ZH.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | FastUglifyJsPlugin
5 |
6 | ## 介绍
7 |
8 | 兼容webpack 2
9 |
10 | 生产环境的构建,uglify过程占了70%左右的时间,是一个非常耗时的过程。相对于webpack原生UglifyJsPlugin,FastUglifyJsPlugin增加了多进程和缓存。多进程可以最大限度的利用多核cpu的计算能力,缓存可以按需编译,减少不必要的计算。以下是一组性能测试数据,FastUglifyJsPlugin的性能提升非常明显。
11 |
12 | |插件|耗时|
13 | |------|---------|
14 | |webpack.optimize.UglifyJsPlugin|7.4 min|
15 | |FastUglifyJsPlugin without cache|4.45 min|
16 | |FastUglifyJsPlugin with cache|36 s|
17 |
18 | 测试样本:29 entry,2615 modules
19 |
20 | 测试环境:MacBook Pro,4核cpu,8g内存
21 |
22 |
23 | ## 安装
24 |
25 | ```shell
26 | npm i fast-uglifyjs-plugin --save
27 |
28 | # or
29 |
30 | yarn add fast-uglifyjs-plugin
31 | ```
32 |
33 | ## 配置
34 | FastUglifyJsPlugin基于webpack.optimize.UglifyJsPlugin修改,用法和webpack.optimize.UglifyJsPlugin完全一样,只是增加了几个额外的配置参数。
35 |
36 | ```js
37 | var FastUglifyJsPlugin = require('fast-uglifyjs-plugin');
38 |
39 | module.exports = {
40 | entry: {...},
41 | output: {...},
42 | plugins: [new FastUglifyJsPlugin({
43 | compress: {
44 | warnings: false
45 | },
46 | // debug设为true可输出详细缓存使用信息:
47 | debug: true,
48 | // 默认开启缓存,提高uglify效率,关闭请使用:
49 | cache: false,
50 | // 默认缓存路径为项目根目录,手动配置请使用:
51 | cacheFolder: path.resolve(__dirname, '.otherFolder'),
52 | // 工作进程数,默认os.cpus().length
53 | workerNum: 2
54 | })]
55 | };
56 | ```
57 |
58 | ## 开源协议
59 |
60 | 本项目基于 [MIT](https://zh.wikipedia.org/wiki/MIT%E8%A8%B1%E5%8F%AF%E8%AD%89) 协议,请自由地享受和参与开源。
61 |
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | module.exports = require('./lib/FastUglifyJsPlugin');
--------------------------------------------------------------------------------
/lib/FastUglifyJsPlugin.js:
--------------------------------------------------------------------------------
1 | /*
2 | 基于webpack.optimize.UglifyJsPlugin修改,增加了多进程和cache支持
3 | */
4 | var os = require('os');
5 | var fork = require('child_process').fork;
6 | var path = require('path');
7 | var SourceMapSource;
8 | try {
9 | SourceMapSource = require("webpack-core/lib/SourceMapSource");
10 | } catch (e) {
11 | SourceMapSource = require("webpack-sources").SourceMapSource;
12 | }
13 | var RawSource;
14 | try {
15 | RawSource = require("webpack-core/lib/RawSource");
16 | } catch (e) {
17 | RawSource = require("webpack-sources").RawSource;
18 | }
19 | var ModuleFilenameHelpers;
20 | try {
21 | ModuleFilenameHelpers = require("webpack/lib/ModuleFilenameHelpers");
22 | } catch (e) {
23 | ModuleFilenameHelpers = require("../ModuleFilenameHelpers");
24 | }
25 | var uglify = require("uglify-js");
26 | var chalk = require('chalk');
27 | var genHash = require('./genHash');
28 | var UglifyCache = require('./UglifyCache');
29 |
30 | var CACHE_FOLDER = './.uglify';
31 |
32 | function FastUglifyJsPlugin(options) {
33 | if (typeof options !== "object") options = {};
34 | if (typeof options.compressor !== "undefined") {
35 | options.compress = options.compressor;
36 | }
37 | this.options = options;
38 | }
39 | module.exports = FastUglifyJsPlugin;
40 |
41 | FastUglifyJsPlugin.prototype.apply = function (compiler) {
42 | var options = this.options;
43 | options.test = options.test || /\.js($|\?)/i;
44 |
45 | compiler.plugin("compilation", function (compilation) {
46 | if (options.sourceMap) {
47 | compilation.plugin("build-module", function (module) {
48 | // to get detailed location info about errors
49 | module.useSourceMap = true;
50 | });
51 | }
52 | compilation.plugin("optimize-chunk-assets", function (chunks, callback) {
53 | var files = [];
54 | var tasks = [];
55 | var idleWorkers = [];
56 | var busyWorkers = [];
57 | var warnings = [];
58 | var cbs = {};
59 | var completeNum = 0;
60 | var totalNum = 0;
61 | var cacheFolder = options.cacheFolder || CACHE_FOLDER;
62 | var isCache = !(options.cache === false);
63 | var uglifyCache = new UglifyCache(cacheFolder);
64 | if (isCache) {
65 | uglifyCache.createCacheFolder();
66 | }
67 | var unChangedChunks = [], changedChunks = [];
68 | chunks.forEach(function (chunk) {
69 | chunk.files.forEach(function (file) {
70 | files.push(file);
71 | });
72 | });
73 | compilation.additionalChunkAssets.forEach(function (file) {
74 | files.push(file);
75 | });
76 | files = files.filter(ModuleFilenameHelpers.matchObject.bind(undefined, options));
77 | files.forEach(function (file) {
78 | var asset = compilation.assets[file];
79 | if(asset.__UglifyJsPlugin) {
80 | compilation.assets[file] = asset.__UglifyJsPlugin;
81 | return;
82 | }
83 | var input = asset.source();
84 | var fileHash = genHash(input);
85 | var filenameHash = genHash(file.replace(compilation.hash, '').slice(0, -3));
86 | var curFile = filenameHash + '.' + fileHash;
87 | var inputSourceMap;
88 | if (isCache) {
89 | if (options.sourceMap && uglifyCache.isContainCacheMap(curFile)) {
90 | var cachedContent = uglifyCache.getCacheContentMap(curFile);
91 | var content = JSON.parse(cachedContent);
92 | asset.__UglifyJsPlugin = compilation.assets[file] = new SourceMapSource(content.stream, content.file, content.map, content.input, content.inputSourceMap);
93 | // 记录未变化chunk
94 | unChangedChunks.push(file);
95 | return;
96 | }
97 | if (!options.sourceMap && uglifyCache.isContainCache(curFile)) {
98 | var cachedContent = uglifyCache.getCacheContent(curFile);
99 | var content = JSON.parse(cachedContent);
100 | asset.__UglifyJsPlugin = compilation.assets[file] = new RawSource(content.stream);
101 | // 记录未变化chunk
102 | unChangedChunks.push(file);
103 | return;
104 | }
105 | // 记录变化chunks
106 | changedChunks.push(file);
107 | }
108 | if (options.sourceMap) {
109 | if (asset.sourceAndMap) {
110 | sourceAndMap = asset.sourceAndMap();
111 | inputSourceMap = sourceAndMap.map;
112 | input = sourceAndMap.source;
113 | } else {
114 | inputSourceMap = asset.map();
115 | input = asset.source();
116 | }
117 | } else {
118 | input = asset.source();
119 | }
120 | tasks.push({
121 | file: file,
122 | input: input,
123 | inputSourceMap: inputSourceMap,
124 | options: options
125 | });
126 | });
127 | if (tasks.length) {
128 | var workerNum = options.workerNum || os.cpus().length;
129 | totalNum = tasks.length;
130 | while (workerNum > 0) {
131 | workerNum--;
132 | var worker = fork(path.join(__dirname, 'worker.js'));
133 | idleWorkers.push(worker);
134 | //主进程收到子进程的信息
135 | worker.on('message', function (m) {
136 | if (m.cmd === 'complete') {
137 | var result = m.result;
138 | var file = result.file;
139 | var task = cbs[file];
140 | var asset = compilation.assets[file];
141 | asset.__UglifyJsPlugin = compilation.assets[file] = (result.map ?
142 | new SourceMapSource(result.stream, file, JSON.parse(result.map), task.input, task.inputSourceMap) :
143 | new RawSource(result.stream));
144 | if (isCache) {
145 | // 记录cache
146 | var cacheContent;
147 | var filenameHash = genHash(file.replace(compilation.hash, '').slice(0, -3));
148 | var fileHash = genHash(task.input);
149 | var name = filenameHash + '.' + fileHash;
150 | if (result.map) {
151 | name += '.map';
152 | cacheContent = JSON.stringify({
153 | stream: result.stream,
154 | file: file,
155 | map: JSON.parse(result.map),
156 | input: task.input,
157 | inputSourceMap: task.inputSourceMap
158 | });
159 | } else {
160 | cacheContent = JSON.stringify({stream: result.stream});
161 | }
162 | uglifyCache.setCacheContent(filenameHash, fileHash, name, cacheContent);
163 | }
164 | completeNum++;
165 | var arr = busyWorkers.filter(function (worker) {
166 | return worker.pid == result.pid;
167 | });
168 | // move worker from busy to idle
169 | if (arr.length) {
170 | var index = busyWorkers.indexOf(arr[0]);
171 | busyWorkers.splice(index, 1);
172 | idleWorkers.push(arr[0]);
173 | }
174 | // all complete and callback
175 | if (completeNum === totalNum) {
176 | if (isCache) {
177 | log('\nchangedChunks: ' + chalk.red.bold(changedChunks.length) + '\n' + chalk.green(changedChunks.join('\n')));
178 | log('\nunChangedChunks: '+ chalk.red.bold(unChangedChunks.length) + '\n' + chalk.green(unChangedChunks.join('\n')));
179 | }
180 | if (warnings.length > 0) {
181 | compilation.warnings.push(new Error(file + " from UglifyJs\n" + warnings.join("\n")));
182 | }
183 | killWorkers();
184 | callback();
185 | } else {
186 | startNext();
187 | }
188 |
189 | } else if (m.cmd === 'warning') {
190 | warnings.push(m.msg);
191 | } else if (m.cmd === 'error') {
192 | var err = m.err;
193 | compilation.errors.push(new Error(m.file + " from UglifyJs\n" + err.message + "\n" + err.stack));
194 | killWorkers();
195 | callback();
196 | }
197 | });
198 | }
199 | process.on('exit', killWorkers);
200 | startNext();
201 | } else {
202 | if (isCache && unChangedChunks.length) {
203 | log('\nunChangedChunks: '+ chalk.red.bold(unChangedChunks.length) + '\n' + chalk.green(unChangedChunks.join('\n')));
204 | }
205 | callback();
206 | }
207 |
208 | function killWorkers() {
209 | idleWorkers.concat(busyWorkers).forEach(function (worker) {
210 | worker.kill();
211 | });
212 | }
213 |
214 | function startNext() {
215 | if (tasks.length && idleWorkers.length) {
216 | do {
217 | var task = tasks.shift();
218 | var worker = idleWorkers.shift();
219 | worker.send({cmd: 'uglify', task: task, time: Date.now()});
220 | cbs[task.file] = task;
221 | busyWorkers.push(worker);
222 | } while (tasks.length && idleWorkers.length);
223 | }
224 | }
225 |
226 | function log(logInfo) {
227 | if (options.debug) {
228 | console.log(logInfo);
229 | }
230 | };
231 | });
232 | compilation.plugin("normal-module-loader", function (context) {
233 | context.minimize = true;
234 | });
235 | });
236 | };
--------------------------------------------------------------------------------
/lib/UglifyCache.js:
--------------------------------------------------------------------------------
1 | var fs = require('fs');
2 | var toString = Object.prototype.toString;
3 |
4 | function UglifyCache(cacheFolder) {
5 | this.cacheFolder = cacheFolder;
6 | this.caches = [];
7 | }
8 |
9 | UglifyCache.prototype.createCacheFolder = function () {
10 | if (!fs.existsSync(this.cacheFolder)) {
11 | var mode = parseInt('0777', 8) & (~process.umask());
12 | fs.mkdirSync(this.cacheFolder, mode);
13 | }
14 | this.caches = fs.readdirSync(this.cacheFolder);
15 | }
16 |
17 | UglifyCache.prototype.isContainCache = function(fileName) {
18 | return this.caches.indexOf(fileName) > -1;
19 | }
20 |
21 | UglifyCache.prototype.isContainCacheMap = function(fileName) {
22 | return this.caches.indexOf(fileName + '.map') > -1;
23 | }
24 |
25 | UglifyCache.prototype.getCacheContent = function(fileName) {
26 | return fs.readFileSync(this.cacheFolder + '/' + fileName).toString();
27 | }
28 |
29 | UglifyCache.prototype.getCacheContentMap = function(fileName) {
30 | return fs.readFileSync(this.cacheFolder + '/' + fileName + '.map').toString();
31 | }
32 |
33 | UglifyCache.prototype.setCacheContent = function(filenameHash, fileHash, fileName, content) {
34 | // 删除前一次缓存
35 | var self = this;
36 | var fileNameRE = new RegExp(filenameHash + ".[A-z0-9]");
37 | var fileRE = new RegExp(filenameHash + '.' + fileHash + '(.map)?');
38 | var sourceFileNames = [];
39 | self.caches.forEach(function (cache) {
40 | // 文件名缓存相同,文件内容缓存不同,才执行删除
41 | if (fileNameRE.test(cache) && !fileRE.test(cache)) {
42 | sourceFileNames.push(cache);
43 | }
44 | });
45 | sourceFileNames.forEach(function(sourceFileName) {
46 | fs.unlinkSync(self.cacheFolder + '/' + sourceFileName);
47 | });
48 | fs.writeFileSync(self.cacheFolder + '/' + fileName, content);
49 | }
50 |
51 | module.exports = UglifyCache;
--------------------------------------------------------------------------------
/lib/genHash.js:
--------------------------------------------------------------------------------
1 | var crypto = require('crypto');
2 |
3 | function genHash(content) {
4 | const hash = crypto
5 | .createHash('sha1')
6 | .update(content)
7 | .digest('hex');
8 |
9 | return hash;
10 | }
11 |
12 | module.exports = genHash;
--------------------------------------------------------------------------------
/lib/worker.js:
--------------------------------------------------------------------------------
1 | var uglify = require("uglify-js");
2 | var SourceMapConsumer;
3 | try {
4 | SourceMapConsumer = require("webpack-core/lib/source-map").SourceMapConsumer;
5 | } catch (e) {
6 | SourceMapConsumer = require("source-map").SourceMapConsumer;
7 | }
8 |
9 | process.on('message', function (m) {
10 | if (m.cmd == 'uglify') {
11 | try {
12 | doUglify(m.task);
13 | } catch (e) {
14 | process.send({
15 | cmd: 'error',
16 | err: {
17 | name: e.name,
18 | message: e.message,
19 | stack: e.stack
20 | },
21 | file: m.task.file
22 | });
23 | }
24 | }
25 | });
26 |
27 | function doUglify(task) {
28 | var oldWarnFunction = uglify.AST_Node.warn_function;
29 | var options = task.options;
30 | if (options.sourceMap) {
31 | var sourceMap = new SourceMapConsumer(task.inputSourceMap);
32 | uglify.AST_Node.warn_function = function (warning) { // eslint-disable-line camelcase
33 | var match = /\[.+:([0-9]+),([0-9]+)\]/.exec(warning);
34 | var line = +match[1];
35 | var column = +match[2];
36 | var original = sourceMap.originalPositionFor({
37 | line: line,
38 | column: column
39 | });
40 | if (!original || !original.source || original.source === task.file) return;
41 | process.send({
42 | cmd: 'warning',
43 | msg: warning.replace(/\[.+:([0-9]+),([0-9]+)\]/, "") +
44 | "[" + original.source + ":" + original.line + "," + original.column + "]"
45 | });
46 | };
47 | } else {
48 | uglify.AST_Node.warn_function = function (warning) { // eslint-disable-line camelcase
49 | process.send({
50 | cmd: 'warning', msg: warning
51 | });
52 | };
53 | }
54 | uglify.base54.reset();
55 | var ast = uglify.parse(task.input, {
56 | filename: task.file
57 | });
58 | if (options.compress !== false) {
59 | ast.figure_out_scope();
60 | var compress = uglify.Compressor(options.compress); // eslint-disable-line new-cap
61 | ast = ast.transform(compress);
62 | }
63 | if (options.mangle !== false) {
64 | ast.figure_out_scope();
65 | ast.compute_char_frequency(options.mangle || {});
66 | ast.mangle_names(options.mangle || {});
67 | if (options.mangle && options.mangle.props) {
68 | uglify.mangle_properties(ast, options.mangle.props);
69 | }
70 | }
71 | var output = {};
72 | output.comments = Object.prototype.hasOwnProperty.call(options, "comments") ? options.comments : /^\**!|@preserve|@license/;
73 | output.beautify = options.beautify;
74 | for (var k in options.output) {
75 | output[k] = options.output[k];
76 | }
77 | if (options.sourceMap) {
78 | var map = uglify.SourceMap({ // eslint-disable-line new-cap
79 | file: task.file,
80 | root: ""
81 | });
82 | output.source_map = map; // eslint-disable-line camelcase
83 | }
84 | var stream = uglify.OutputStream(output); // eslint-disable-line new-cap
85 | ast.print(stream);
86 | if (map) map = map + "";
87 | stream = stream + "";
88 | uglify.AST_Node.warn_function = oldWarnFunction;
89 | process.send({
90 | cmd: 'complete',
91 | result: {map: map, stream: stream, file: task.file, pid: process.pid},
92 | time: Date.now()
93 | })
94 | }
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "fast-uglifyjs-plugin",
3 | "version": "0.3.0",
4 | "description": "hight performance uglify plugin for webpack",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "rm -rf .uglify && node_modules/mocha/bin/mocha test"
8 | },
9 | "keywords": ["cache", "uglify", "multi-process"],
10 | "author": "liwei ",
11 | "peerDependencies": {
12 | "webpack": "^1.9 || ^2 || ^2.1.0-beta || ^2.2.0-rc"
13 | },
14 | "devDependencies": {
15 | "chai": "^3.5.0",
16 | "mocha": "^3.1.2",
17 | "webpack": "^1.13.3"
18 | },
19 | "dependencies": {
20 | "source-map": "^0.5.6",
21 | "webpack-sources": "^0.2.3",
22 | "uglify-js": "^2.7.3",
23 | "chalk": "^1.1.3"
24 | },
25 | "repository": {
26 | "type": "git",
27 | "url": "https://github.com/youzan/fast-uglifyjs-plugin"
28 | },
29 | "license": "MIT"
30 | }
31 |
--------------------------------------------------------------------------------
/test/cases/factorial.js:
--------------------------------------------------------------------------------
1 | function factorial(num) {
2 | var result = 1;
3 | if (num == 0 || num == 1) {
4 | result = num;
5 | } else {
6 | result = num * factorial(num - 1);
7 | }
8 | return result;
9 | }
10 |
11 | module.exports = global.factorial = factorial;
--------------------------------------------------------------------------------
/test/index.js:
--------------------------------------------------------------------------------
1 | var path = require('path');
2 | var vm = require('vm');
3 | var webpack = require('webpack');
4 | var assert = require('chai').assert;
5 | var fs = require('fs');
6 | var config = require('./webpack.config.js');
7 |
8 | describe('FastUglifyJsPlugin', function () {
9 | describe('firstly build without cache', function () {
10 | it('should build', function (done) {
11 | webpack(config, function (err) {
12 | assert.isNull(err);
13 | done();
14 | });
15 | });
16 | it('should create a output file', function () {
17 | var stats = fs.statSync(path.join(__dirname, 'outs/factorial.js'));
18 | assert.isTrue(stats.isFile());
19 | });
20 | it('should create a output map', function () {
21 | var stats = fs.statSync(path.join(__dirname, 'outs/factorial.js.map'));
22 | assert.isTrue(stats.isFile());
23 | });
24 | it('should correctly run', function () {
25 | var factorial = require('./cases/factorial');
26 | var code = fs.readFileSync(path.join(__dirname, 'outs/factorial.js')).toString();
27 | vm.runInThisContext(code);
28 | assert.strictEqual(factorial(18), global.factorial(18));
29 | });
30 | });
31 | describe('secondly build with cache', function () {
32 | it('should build', function (done) {
33 | webpack(config, function (err) {
34 | assert.isNull(err);
35 | done();
36 | });
37 | });
38 | it('should create a output file', function () {
39 | var stats = fs.statSync(path.join(__dirname, 'outs/factorial.js'));
40 | assert.isTrue(stats.isFile());
41 | });
42 | it('should create a output map', function () {
43 | var stats = fs.statSync(path.join(__dirname, 'outs/factorial.js.map'));
44 | assert.isTrue(stats.isFile());
45 | });
46 | it('should correctly run', function () {
47 | var factorial = require('./cases/factorial');
48 | var code = fs.readFileSync(path.join(__dirname, 'outs/factorial.js')).toString();
49 | vm.runInThisContext(code);
50 | assert.strictEqual(factorial(18), global.factorial(18));
51 | });
52 | })
53 | });
--------------------------------------------------------------------------------
/test/webpack.config.js:
--------------------------------------------------------------------------------
1 | var path = require("path");
2 | var FastUglifyJsPlugin = require('../index.js');
3 |
4 | module.exports = {
5 | entry: path.join(__dirname, 'cases/factorial.js'),
6 | output: {
7 | path: path.join(__dirname, 'outs'),
8 | filename: 'factorial.js'
9 | },
10 | devtool: '#source-map',
11 | plugins: [
12 | new FastUglifyJsPlugin({
13 | compress: {
14 | warnings: false
15 | },
16 | debug: true,
17 | sourceMap: true,
18 | // cache: false,
19 | // cacheFolder: path.resolve(__dirname, './.otherFolder/')
20 | })
21 | ]
22 | };
23 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | abbrev@1:
6 | version "1.1.0"
7 | resolved "http://registry.npm.taobao.org/abbrev/download/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f"
8 |
9 | acorn@^3.0.0:
10 | version "3.3.0"
11 | resolved "http://registry.npm.taobao.org/acorn/download/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
12 |
13 | ajv@^4.9.1:
14 | version "4.11.8"
15 | resolved "http://registry.npm.taobao.org/ajv/download/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
16 | dependencies:
17 | co "^4.6.0"
18 | json-stable-stringify "^1.0.1"
19 |
20 | align-text@^0.1.1, align-text@^0.1.3:
21 | version "0.1.4"
22 | resolved "http://registry.npm.taobao.org/align-text/download/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
23 | dependencies:
24 | kind-of "^3.0.2"
25 | longest "^1.0.1"
26 | repeat-string "^1.5.2"
27 |
28 | amdefine@>=0.0.4:
29 | version "1.0.1"
30 | resolved "http://registry.npm.taobao.org/amdefine/download/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
31 |
32 | ansi-regex@^2.0.0:
33 | version "2.1.1"
34 | resolved "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
35 |
36 | ansi-styles@^2.2.1:
37 | version "2.2.1"
38 | resolved "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
39 |
40 | anymatch@^1.3.0:
41 | version "1.3.0"
42 | resolved "http://registry.npm.taobao.org/anymatch/download/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507"
43 | dependencies:
44 | arrify "^1.0.0"
45 | micromatch "^2.1.5"
46 |
47 | aproba@^1.0.3:
48 | version "1.1.2"
49 | resolved "http://registry.npm.taobao.org/aproba/download/aproba-1.1.2.tgz#45c6629094de4e96f693ef7eab74ae079c240fc1"
50 |
51 | are-we-there-yet@~1.1.2:
52 | version "1.1.4"
53 | resolved "http://registry.npm.taobao.org/are-we-there-yet/download/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d"
54 | dependencies:
55 | delegates "^1.0.0"
56 | readable-stream "^2.0.6"
57 |
58 | arr-diff@^2.0.0:
59 | version "2.0.0"
60 | resolved "http://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
61 | dependencies:
62 | arr-flatten "^1.0.1"
63 |
64 | arr-flatten@^1.0.1:
65 | version "1.0.3"
66 | resolved "http://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.0.3.tgz#a274ed85ac08849b6bd7847c4580745dc51adfb1"
67 |
68 | array-unique@^0.2.1:
69 | version "0.2.1"
70 | resolved "http://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
71 |
72 | arrify@^1.0.0:
73 | version "1.0.1"
74 | resolved "http://registry.npm.taobao.org/arrify/download/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
75 |
76 | asn1@~0.2.3:
77 | version "0.2.3"
78 | resolved "http://registry.npm.taobao.org/asn1/download/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
79 |
80 | assert-plus@1.0.0, assert-plus@^1.0.0:
81 | version "1.0.0"
82 | resolved "http://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
83 |
84 | assert-plus@^0.2.0:
85 | version "0.2.0"
86 | resolved "http://registry.npm.taobao.org/assert-plus/download/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234"
87 |
88 | assert@^1.1.1:
89 | version "1.4.1"
90 | resolved "http://registry.npm.taobao.org/assert/download/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91"
91 | dependencies:
92 | util "0.10.3"
93 |
94 | assertion-error@^1.0.1:
95 | version "1.0.2"
96 | resolved "http://registry.npm.taobao.org/assertion-error/download/assertion-error-1.0.2.tgz#13ca515d86206da0bac66e834dd397d87581094c"
97 |
98 | async-each@^1.0.0:
99 | version "1.0.1"
100 | resolved "http://registry.npm.taobao.org/async-each/download/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
101 |
102 | async@^0.9.0:
103 | version "0.9.2"
104 | resolved "http://registry.npm.taobao.org/async/download/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d"
105 |
106 | async@^1.3.0:
107 | version "1.5.2"
108 | resolved "http://registry.npm.taobao.org/async/download/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
109 |
110 | async@~0.2.6:
111 | version "0.2.10"
112 | resolved "http://registry.npm.taobao.org/async/download/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1"
113 |
114 | asynckit@^0.4.0:
115 | version "0.4.0"
116 | resolved "http://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
117 |
118 | aws-sign2@~0.6.0:
119 | version "0.6.0"
120 | resolved "http://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
121 |
122 | aws4@^1.2.1:
123 | version "1.6.0"
124 | resolved "http://registry.npm.taobao.org/aws4/download/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
125 |
126 | balanced-match@^0.4.1:
127 | version "0.4.2"
128 | resolved "http://registry.npm.taobao.org/balanced-match/download/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
129 |
130 | base64-js@^1.0.2:
131 | version "1.2.0"
132 | resolved "http://registry.npm.taobao.org/base64-js/download/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1"
133 |
134 | bcrypt-pbkdf@^1.0.0:
135 | version "1.0.1"
136 | resolved "http://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
137 | dependencies:
138 | tweetnacl "^0.14.3"
139 |
140 | big.js@^3.1.3:
141 | version "3.1.3"
142 | resolved "http://registry.npm.taobao.org/big.js/download/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978"
143 |
144 | binary-extensions@^1.0.0:
145 | version "1.8.0"
146 | resolved "http://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774"
147 |
148 | block-stream@*:
149 | version "0.0.9"
150 | resolved "http://registry.npm.taobao.org/block-stream/download/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a"
151 | dependencies:
152 | inherits "~2.0.0"
153 |
154 | boom@2.x.x:
155 | version "2.10.1"
156 | resolved "http://registry.npm.taobao.org/boom/download/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f"
157 | dependencies:
158 | hoek "2.x.x"
159 |
160 | brace-expansion@^1.1.7:
161 | version "1.1.7"
162 | resolved "http://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59"
163 | dependencies:
164 | balanced-match "^0.4.1"
165 | concat-map "0.0.1"
166 |
167 | braces@^1.8.2:
168 | version "1.8.5"
169 | resolved "http://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7"
170 | dependencies:
171 | expand-range "^1.8.1"
172 | preserve "^0.2.0"
173 | repeat-element "^1.1.2"
174 |
175 | browser-stdout@1.3.0:
176 | version "1.3.0"
177 | resolved "http://registry.npm.taobao.org/browser-stdout/download/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f"
178 |
179 | browserify-aes@0.4.0:
180 | version "0.4.0"
181 | resolved "http://registry.npm.taobao.org/browserify-aes/download/browserify-aes-0.4.0.tgz#067149b668df31c4b58533e02d01e806d8608e2c"
182 | dependencies:
183 | inherits "^2.0.1"
184 |
185 | browserify-zlib@^0.1.4:
186 | version "0.1.4"
187 | resolved "http://registry.npm.taobao.org/browserify-zlib/download/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d"
188 | dependencies:
189 | pako "~0.2.0"
190 |
191 | buffer@^4.9.0:
192 | version "4.9.1"
193 | resolved "http://registry.npm.taobao.org/buffer/download/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298"
194 | dependencies:
195 | base64-js "^1.0.2"
196 | ieee754 "^1.1.4"
197 | isarray "^1.0.0"
198 |
199 | builtin-status-codes@^3.0.0:
200 | version "3.0.0"
201 | resolved "http://registry.npm.taobao.org/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
202 |
203 | camelcase@^1.0.2:
204 | version "1.2.1"
205 | resolved "http://registry.npm.taobao.org/camelcase/download/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
206 |
207 | caseless@~0.12.0:
208 | version "0.12.0"
209 | resolved "http://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
210 |
211 | center-align@^0.1.1:
212 | version "0.1.3"
213 | resolved "http://registry.npm.taobao.org/center-align/download/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
214 | dependencies:
215 | align-text "^0.1.3"
216 | lazy-cache "^1.0.3"
217 |
218 | chai@^3.5.0:
219 | version "3.5.0"
220 | resolved "http://registry.npm.taobao.org/chai/download/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247"
221 | dependencies:
222 | assertion-error "^1.0.1"
223 | deep-eql "^0.1.3"
224 | type-detect "^1.0.0"
225 |
226 | chalk@^1.1.3:
227 | version "1.1.3"
228 | resolved "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
229 | dependencies:
230 | ansi-styles "^2.2.1"
231 | escape-string-regexp "^1.0.2"
232 | has-ansi "^2.0.0"
233 | strip-ansi "^3.0.0"
234 | supports-color "^2.0.0"
235 |
236 | chokidar@^1.0.0:
237 | version "1.7.0"
238 | resolved "http://registry.npm.taobao.org/chokidar/download/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468"
239 | dependencies:
240 | anymatch "^1.3.0"
241 | async-each "^1.0.0"
242 | glob-parent "^2.0.0"
243 | inherits "^2.0.1"
244 | is-binary-path "^1.0.0"
245 | is-glob "^2.0.0"
246 | path-is-absolute "^1.0.0"
247 | readdirp "^2.0.0"
248 | optionalDependencies:
249 | fsevents "^1.0.0"
250 |
251 | cliui@^2.1.0:
252 | version "2.1.0"
253 | resolved "http://registry.npm.taobao.org/cliui/download/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
254 | dependencies:
255 | center-align "^0.1.1"
256 | right-align "^0.1.1"
257 | wordwrap "0.0.2"
258 |
259 | clone@^1.0.2:
260 | version "1.0.2"
261 | resolved "http://registry.npm.taobao.org/clone/download/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149"
262 |
263 | co@^4.6.0:
264 | version "4.6.0"
265 | resolved "http://registry.npm.taobao.org/co/download/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
266 |
267 | code-point-at@^1.0.0:
268 | version "1.1.0"
269 | resolved "http://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
270 |
271 | combined-stream@^1.0.5, combined-stream@~1.0.5:
272 | version "1.0.5"
273 | resolved "http://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
274 | dependencies:
275 | delayed-stream "~1.0.0"
276 |
277 | commander@2.9.0:
278 | version "2.9.0"
279 | resolved "http://registry.npm.taobao.org/commander/download/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
280 | dependencies:
281 | graceful-readlink ">= 1.0.0"
282 |
283 | concat-map@0.0.1:
284 | version "0.0.1"
285 | resolved "http://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
286 |
287 | console-browserify@^1.1.0:
288 | version "1.1.0"
289 | resolved "http://registry.npm.taobao.org/console-browserify/download/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10"
290 | dependencies:
291 | date-now "^0.1.4"
292 |
293 | console-control-strings@^1.0.0, console-control-strings@~1.1.0:
294 | version "1.1.0"
295 | resolved "http://registry.npm.taobao.org/console-control-strings/download/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
296 |
297 | constants-browserify@^1.0.0:
298 | version "1.0.0"
299 | resolved "http://registry.npm.taobao.org/constants-browserify/download/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
300 |
301 | core-util-is@~1.0.0:
302 | version "1.0.2"
303 | resolved "http://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
304 |
305 | cryptiles@2.x.x:
306 | version "2.0.5"
307 | resolved "http://registry.npm.taobao.org/cryptiles/download/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8"
308 | dependencies:
309 | boom "2.x.x"
310 |
311 | crypto-browserify@3.3.0:
312 | version "3.3.0"
313 | resolved "http://registry.npm.taobao.org/crypto-browserify/download/crypto-browserify-3.3.0.tgz#b9fc75bb4a0ed61dcf1cd5dae96eb30c9c3e506c"
314 | dependencies:
315 | browserify-aes "0.4.0"
316 | pbkdf2-compat "2.0.1"
317 | ripemd160 "0.2.0"
318 | sha.js "2.2.6"
319 |
320 | dashdash@^1.12.0:
321 | version "1.14.1"
322 | resolved "http://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
323 | dependencies:
324 | assert-plus "^1.0.0"
325 |
326 | date-now@^0.1.4:
327 | version "0.1.4"
328 | resolved "http://registry.npm.taobao.org/date-now/download/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
329 |
330 | debug@2.6.0, debug@^2.2.0:
331 | version "2.6.0"
332 | resolved "http://registry.npm.taobao.org/debug/download/debug-2.6.0.tgz#bc596bcabe7617f11d9fa15361eded5608b8499b"
333 | dependencies:
334 | ms "0.7.2"
335 |
336 | decamelize@^1.0.0:
337 | version "1.2.0"
338 | resolved "http://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
339 |
340 | deep-eql@^0.1.3:
341 | version "0.1.3"
342 | resolved "http://registry.npm.taobao.org/deep-eql/download/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2"
343 | dependencies:
344 | type-detect "0.1.1"
345 |
346 | deep-extend@~0.4.0:
347 | version "0.4.2"
348 | resolved "http://registry.npm.taobao.org/deep-extend/download/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f"
349 |
350 | delayed-stream@~1.0.0:
351 | version "1.0.0"
352 | resolved "http://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
353 |
354 | delegates@^1.0.0:
355 | version "1.0.0"
356 | resolved "http://registry.npm.taobao.org/delegates/download/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
357 |
358 | diff@3.2.0:
359 | version "3.2.0"
360 | resolved "http://registry.npm.taobao.org/diff/download/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9"
361 |
362 | domain-browser@^1.1.1:
363 | version "1.1.7"
364 | resolved "http://registry.npm.taobao.org/domain-browser/download/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc"
365 |
366 | ecc-jsbn@~0.1.1:
367 | version "0.1.1"
368 | resolved "http://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
369 | dependencies:
370 | jsbn "~0.1.0"
371 |
372 | emojis-list@^2.0.0:
373 | version "2.1.0"
374 | resolved "http://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
375 |
376 | enhanced-resolve@~0.9.0:
377 | version "0.9.1"
378 | resolved "http://registry.npm.taobao.org/enhanced-resolve/download/enhanced-resolve-0.9.1.tgz#4d6e689b3725f86090927ccc86cd9f1635b89e2e"
379 | dependencies:
380 | graceful-fs "^4.1.2"
381 | memory-fs "^0.2.0"
382 | tapable "^0.1.8"
383 |
384 | errno@^0.1.3:
385 | version "0.1.4"
386 | resolved "http://registry.npm.taobao.org/errno/download/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d"
387 | dependencies:
388 | prr "~0.0.0"
389 |
390 | escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2:
391 | version "1.0.5"
392 | resolved "http://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
393 |
394 | events@^1.0.0:
395 | version "1.1.1"
396 | resolved "http://registry.npm.taobao.org/events/download/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924"
397 |
398 | expand-brackets@^0.1.4:
399 | version "0.1.5"
400 | resolved "http://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
401 | dependencies:
402 | is-posix-bracket "^0.1.0"
403 |
404 | expand-range@^1.8.1:
405 | version "1.8.2"
406 | resolved "http://registry.npm.taobao.org/expand-range/download/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337"
407 | dependencies:
408 | fill-range "^2.1.0"
409 |
410 | extend@~3.0.0:
411 | version "3.0.1"
412 | resolved "http://registry.npm.taobao.org/extend/download/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
413 |
414 | extglob@^0.3.1:
415 | version "0.3.2"
416 | resolved "http://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
417 | dependencies:
418 | is-extglob "^1.0.0"
419 |
420 | extsprintf@1.0.2:
421 | version "1.0.2"
422 | resolved "http://registry.npm.taobao.org/extsprintf/download/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550"
423 |
424 | filename-regex@^2.0.0:
425 | version "2.0.1"
426 | resolved "http://registry.npm.taobao.org/filename-regex/download/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
427 |
428 | fill-range@^2.1.0:
429 | version "2.2.3"
430 | resolved "http://registry.npm.taobao.org/fill-range/download/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723"
431 | dependencies:
432 | is-number "^2.1.0"
433 | isobject "^2.0.0"
434 | randomatic "^1.1.3"
435 | repeat-element "^1.1.2"
436 | repeat-string "^1.5.2"
437 |
438 | for-in@^1.0.1:
439 | version "1.0.2"
440 | resolved "http://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
441 |
442 | for-own@^0.1.4:
443 | version "0.1.5"
444 | resolved "http://registry.npm.taobao.org/for-own/download/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce"
445 | dependencies:
446 | for-in "^1.0.1"
447 |
448 | forever-agent@~0.6.1:
449 | version "0.6.1"
450 | resolved "http://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
451 |
452 | form-data@~2.1.1:
453 | version "2.1.4"
454 | resolved "http://registry.npm.taobao.org/form-data/download/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1"
455 | dependencies:
456 | asynckit "^0.4.0"
457 | combined-stream "^1.0.5"
458 | mime-types "^2.1.12"
459 |
460 | fs.realpath@^1.0.0:
461 | version "1.0.0"
462 | resolved "http://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
463 |
464 | fsevents@^1.0.0:
465 | version "1.1.1"
466 | resolved "http://registry.npm.taobao.org/fsevents/download/fsevents-1.1.1.tgz#f19fd28f43eeaf761680e519a203c4d0b3d31aff"
467 | dependencies:
468 | nan "^2.3.0"
469 | node-pre-gyp "^0.6.29"
470 |
471 | fstream-ignore@^1.0.5:
472 | version "1.0.5"
473 | resolved "http://registry.npm.taobao.org/fstream-ignore/download/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105"
474 | dependencies:
475 | fstream "^1.0.0"
476 | inherits "2"
477 | minimatch "^3.0.0"
478 |
479 | fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2:
480 | version "1.0.11"
481 | resolved "http://registry.npm.taobao.org/fstream/download/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171"
482 | dependencies:
483 | graceful-fs "^4.1.2"
484 | inherits "~2.0.0"
485 | mkdirp ">=0.5 0"
486 | rimraf "2"
487 |
488 | gauge@~2.7.3:
489 | version "2.7.4"
490 | resolved "http://registry.npm.taobao.org/gauge/download/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
491 | dependencies:
492 | aproba "^1.0.3"
493 | console-control-strings "^1.0.0"
494 | has-unicode "^2.0.0"
495 | object-assign "^4.1.0"
496 | signal-exit "^3.0.0"
497 | string-width "^1.0.1"
498 | strip-ansi "^3.0.1"
499 | wide-align "^1.1.0"
500 |
501 | getpass@^0.1.1:
502 | version "0.1.7"
503 | resolved "http://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
504 | dependencies:
505 | assert-plus "^1.0.0"
506 |
507 | glob-base@^0.3.0:
508 | version "0.3.0"
509 | resolved "http://registry.npm.taobao.org/glob-base/download/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
510 | dependencies:
511 | glob-parent "^2.0.0"
512 | is-glob "^2.0.0"
513 |
514 | glob-parent@^2.0.0:
515 | version "2.0.0"
516 | resolved "http://registry.npm.taobao.org/glob-parent/download/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28"
517 | dependencies:
518 | is-glob "^2.0.0"
519 |
520 | glob@7.1.1, glob@^7.0.5:
521 | version "7.1.1"
522 | resolved "http://registry.npm.taobao.org/glob/download/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
523 | dependencies:
524 | fs.realpath "^1.0.0"
525 | inflight "^1.0.4"
526 | inherits "2"
527 | minimatch "^3.0.2"
528 | once "^1.3.0"
529 | path-is-absolute "^1.0.0"
530 |
531 | graceful-fs@^4.1.2:
532 | version "4.1.11"
533 | resolved "http://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
534 |
535 | "graceful-readlink@>= 1.0.0":
536 | version "1.0.1"
537 | resolved "http://registry.npm.taobao.org/graceful-readlink/download/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
538 |
539 | growl@1.9.2:
540 | version "1.9.2"
541 | resolved "http://registry.npm.taobao.org/growl/download/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f"
542 |
543 | har-schema@^1.0.5:
544 | version "1.0.5"
545 | resolved "http://registry.npm.taobao.org/har-schema/download/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e"
546 |
547 | har-validator@~4.2.1:
548 | version "4.2.1"
549 | resolved "http://registry.npm.taobao.org/har-validator/download/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a"
550 | dependencies:
551 | ajv "^4.9.1"
552 | har-schema "^1.0.5"
553 |
554 | has-ansi@^2.0.0:
555 | version "2.0.0"
556 | resolved "http://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
557 | dependencies:
558 | ansi-regex "^2.0.0"
559 |
560 | has-flag@^1.0.0:
561 | version "1.0.0"
562 | resolved "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
563 |
564 | has-unicode@^2.0.0:
565 | version "2.0.1"
566 | resolved "http://registry.npm.taobao.org/has-unicode/download/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
567 |
568 | hawk@~3.1.3:
569 | version "3.1.3"
570 | resolved "http://registry.npm.taobao.org/hawk/download/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4"
571 | dependencies:
572 | boom "2.x.x"
573 | cryptiles "2.x.x"
574 | hoek "2.x.x"
575 | sntp "1.x.x"
576 |
577 | hoek@2.x.x:
578 | version "2.16.3"
579 | resolved "http://registry.npm.taobao.org/hoek/download/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
580 |
581 | http-signature@~1.1.0:
582 | version "1.1.1"
583 | resolved "http://registry.npm.taobao.org/http-signature/download/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
584 | dependencies:
585 | assert-plus "^0.2.0"
586 | jsprim "^1.2.2"
587 | sshpk "^1.7.0"
588 |
589 | https-browserify@0.0.1:
590 | version "0.0.1"
591 | resolved "http://registry.npm.taobao.org/https-browserify/download/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82"
592 |
593 | ieee754@^1.1.4:
594 | version "1.1.8"
595 | resolved "http://registry.npm.taobao.org/ieee754/download/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4"
596 |
597 | indexof@0.0.1:
598 | version "0.0.1"
599 | resolved "http://registry.npm.taobao.org/indexof/download/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
600 |
601 | inflight@^1.0.4:
602 | version "1.0.6"
603 | resolved "http://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
604 | dependencies:
605 | once "^1.3.0"
606 | wrappy "1"
607 |
608 | inherits@2, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1:
609 | version "2.0.3"
610 | resolved "http://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
611 |
612 | inherits@2.0.1:
613 | version "2.0.1"
614 | resolved "http://registry.npm.taobao.org/inherits/download/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
615 |
616 | ini@~1.3.0:
617 | version "1.3.4"
618 | resolved "http://registry.npm.taobao.org/ini/download/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e"
619 |
620 | interpret@^0.6.4:
621 | version "0.6.6"
622 | resolved "http://registry.npm.taobao.org/interpret/download/interpret-0.6.6.tgz#fecd7a18e7ce5ca6abfb953e1f86213a49f1625b"
623 |
624 | is-binary-path@^1.0.0:
625 | version "1.0.1"
626 | resolved "http://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
627 | dependencies:
628 | binary-extensions "^1.0.0"
629 |
630 | is-buffer@^1.1.5:
631 | version "1.1.5"
632 | resolved "http://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc"
633 |
634 | is-dotfile@^1.0.0:
635 | version "1.0.3"
636 | resolved "http://registry.npm.taobao.org/is-dotfile/download/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
637 |
638 | is-equal-shallow@^0.1.3:
639 | version "0.1.3"
640 | resolved "http://registry.npm.taobao.org/is-equal-shallow/download/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534"
641 | dependencies:
642 | is-primitive "^2.0.0"
643 |
644 | is-extendable@^0.1.1:
645 | version "0.1.1"
646 | resolved "http://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
647 |
648 | is-extglob@^1.0.0:
649 | version "1.0.0"
650 | resolved "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
651 |
652 | is-fullwidth-code-point@^1.0.0:
653 | version "1.0.0"
654 | resolved "http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
655 | dependencies:
656 | number-is-nan "^1.0.0"
657 |
658 | is-glob@^2.0.0, is-glob@^2.0.1:
659 | version "2.0.1"
660 | resolved "http://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
661 | dependencies:
662 | is-extglob "^1.0.0"
663 |
664 | is-number@^2.0.2, is-number@^2.1.0:
665 | version "2.1.0"
666 | resolved "http://registry.npm.taobao.org/is-number/download/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
667 | dependencies:
668 | kind-of "^3.0.2"
669 |
670 | is-posix-bracket@^0.1.0:
671 | version "0.1.1"
672 | resolved "http://registry.npm.taobao.org/is-posix-bracket/download/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
673 |
674 | is-primitive@^2.0.0:
675 | version "2.0.0"
676 | resolved "http://registry.npm.taobao.org/is-primitive/download/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
677 |
678 | is-typedarray@~1.0.0:
679 | version "1.0.0"
680 | resolved "http://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
681 |
682 | isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
683 | version "1.0.0"
684 | resolved "http://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
685 |
686 | isobject@^2.0.0:
687 | version "2.1.0"
688 | resolved "http://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
689 | dependencies:
690 | isarray "1.0.0"
691 |
692 | isstream@~0.1.2:
693 | version "0.1.2"
694 | resolved "http://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
695 |
696 | jodid25519@^1.0.0:
697 | version "1.0.2"
698 | resolved "http://registry.npm.taobao.org/jodid25519/download/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967"
699 | dependencies:
700 | jsbn "~0.1.0"
701 |
702 | jsbn@~0.1.0:
703 | version "0.1.1"
704 | resolved "http://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
705 |
706 | json-schema@0.2.3:
707 | version "0.2.3"
708 | resolved "http://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
709 |
710 | json-stable-stringify@^1.0.1:
711 | version "1.0.1"
712 | resolved "http://registry.npm.taobao.org/json-stable-stringify/download/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
713 | dependencies:
714 | jsonify "~0.0.0"
715 |
716 | json-stringify-safe@~5.0.1:
717 | version "5.0.1"
718 | resolved "http://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
719 |
720 | json3@3.3.2:
721 | version "3.3.2"
722 | resolved "http://registry.npm.taobao.org/json3/download/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1"
723 |
724 | json5@^0.5.0:
725 | version "0.5.1"
726 | resolved "http://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
727 |
728 | jsonify@~0.0.0:
729 | version "0.0.0"
730 | resolved "http://registry.npm.taobao.org/jsonify/download/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
731 |
732 | jsprim@^1.2.2:
733 | version "1.4.0"
734 | resolved "http://registry.npm.taobao.org/jsprim/download/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918"
735 | dependencies:
736 | assert-plus "1.0.0"
737 | extsprintf "1.0.2"
738 | json-schema "0.2.3"
739 | verror "1.3.6"
740 |
741 | kind-of@^3.0.2:
742 | version "3.2.2"
743 | resolved "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
744 | dependencies:
745 | is-buffer "^1.1.5"
746 |
747 | lazy-cache@^1.0.3:
748 | version "1.0.4"
749 | resolved "http://registry.npm.taobao.org/lazy-cache/download/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
750 |
751 | loader-utils@^0.2.11:
752 | version "0.2.17"
753 | resolved "http://registry.npm.taobao.org/loader-utils/download/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348"
754 | dependencies:
755 | big.js "^3.1.3"
756 | emojis-list "^2.0.0"
757 | json5 "^0.5.0"
758 | object-assign "^4.0.1"
759 |
760 | lodash._baseassign@^3.0.0:
761 | version "3.2.0"
762 | resolved "http://registry.npm.taobao.org/lodash._baseassign/download/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e"
763 | dependencies:
764 | lodash._basecopy "^3.0.0"
765 | lodash.keys "^3.0.0"
766 |
767 | lodash._basecopy@^3.0.0:
768 | version "3.0.1"
769 | resolved "http://registry.npm.taobao.org/lodash._basecopy/download/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36"
770 |
771 | lodash._basecreate@^3.0.0:
772 | version "3.0.3"
773 | resolved "http://registry.npm.taobao.org/lodash._basecreate/download/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821"
774 |
775 | lodash._getnative@^3.0.0:
776 | version "3.9.1"
777 | resolved "http://registry.npm.taobao.org/lodash._getnative/download/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
778 |
779 | lodash._isiterateecall@^3.0.0:
780 | version "3.0.9"
781 | resolved "http://registry.npm.taobao.org/lodash._isiterateecall/download/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c"
782 |
783 | lodash.create@3.1.1:
784 | version "3.1.1"
785 | resolved "http://registry.npm.taobao.org/lodash.create/download/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7"
786 | dependencies:
787 | lodash._baseassign "^3.0.0"
788 | lodash._basecreate "^3.0.0"
789 | lodash._isiterateecall "^3.0.0"
790 |
791 | lodash.isarguments@^3.0.0:
792 | version "3.1.0"
793 | resolved "http://registry.npm.taobao.org/lodash.isarguments/download/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
794 |
795 | lodash.isarray@^3.0.0:
796 | version "3.0.4"
797 | resolved "http://registry.npm.taobao.org/lodash.isarray/download/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55"
798 |
799 | lodash.keys@^3.0.0:
800 | version "3.1.2"
801 | resolved "http://registry.npm.taobao.org/lodash.keys/download/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a"
802 | dependencies:
803 | lodash._getnative "^3.0.0"
804 | lodash.isarguments "^3.0.0"
805 | lodash.isarray "^3.0.0"
806 |
807 | longest@^1.0.1:
808 | version "1.0.1"
809 | resolved "http://registry.npm.taobao.org/longest/download/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
810 |
811 | memory-fs@^0.2.0:
812 | version "0.2.0"
813 | resolved "http://registry.npm.taobao.org/memory-fs/download/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290"
814 |
815 | memory-fs@~0.3.0:
816 | version "0.3.0"
817 | resolved "http://registry.npm.taobao.org/memory-fs/download/memory-fs-0.3.0.tgz#7bcc6b629e3a43e871d7e29aca6ae8a7f15cbb20"
818 | dependencies:
819 | errno "^0.1.3"
820 | readable-stream "^2.0.1"
821 |
822 | micromatch@^2.1.5:
823 | version "2.3.11"
824 | resolved "http://registry.npm.taobao.org/micromatch/download/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
825 | dependencies:
826 | arr-diff "^2.0.0"
827 | array-unique "^0.2.1"
828 | braces "^1.8.2"
829 | expand-brackets "^0.1.4"
830 | extglob "^0.3.1"
831 | filename-regex "^2.0.0"
832 | is-extglob "^1.0.0"
833 | is-glob "^2.0.1"
834 | kind-of "^3.0.2"
835 | normalize-path "^2.0.1"
836 | object.omit "^2.0.0"
837 | parse-glob "^3.0.4"
838 | regex-cache "^0.4.2"
839 |
840 | mime-db@~1.27.0:
841 | version "1.27.0"
842 | resolved "http://registry.npm.taobao.org/mime-db/download/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1"
843 |
844 | mime-types@^2.1.12, mime-types@~2.1.7:
845 | version "2.1.15"
846 | resolved "http://registry.npm.taobao.org/mime-types/download/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed"
847 | dependencies:
848 | mime-db "~1.27.0"
849 |
850 | minimatch@^3.0.0, minimatch@^3.0.2:
851 | version "3.0.4"
852 | resolved "http://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
853 | dependencies:
854 | brace-expansion "^1.1.7"
855 |
856 | minimist@0.0.8, minimist@~0.0.1:
857 | version "0.0.8"
858 | resolved "http://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
859 |
860 | minimist@^1.2.0:
861 | version "1.2.0"
862 | resolved "http://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
863 |
864 | mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@~0.5.0:
865 | version "0.5.1"
866 | resolved "http://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
867 | dependencies:
868 | minimist "0.0.8"
869 |
870 | mocha@^3.1.2:
871 | version "3.4.2"
872 | resolved "http://registry.npm.taobao.org/mocha/download/mocha-3.4.2.tgz#d0ef4d332126dbf18d0d640c9b382dd48be97594"
873 | dependencies:
874 | browser-stdout "1.3.0"
875 | commander "2.9.0"
876 | debug "2.6.0"
877 | diff "3.2.0"
878 | escape-string-regexp "1.0.5"
879 | glob "7.1.1"
880 | growl "1.9.2"
881 | json3 "3.3.2"
882 | lodash.create "3.1.1"
883 | mkdirp "0.5.1"
884 | supports-color "3.1.2"
885 |
886 | ms@0.7.2:
887 | version "0.7.2"
888 | resolved "http://registry.npm.taobao.org/ms/download/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765"
889 |
890 | nan@^2.3.0:
891 | version "2.6.2"
892 | resolved "http://registry.npm.taobao.org/nan/download/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45"
893 |
894 | node-libs-browser@^0.7.0:
895 | version "0.7.0"
896 | resolved "http://registry.npm.taobao.org/node-libs-browser/download/node-libs-browser-0.7.0.tgz#3e272c0819e308935e26674408d7af0e1491b83b"
897 | dependencies:
898 | assert "^1.1.1"
899 | browserify-zlib "^0.1.4"
900 | buffer "^4.9.0"
901 | console-browserify "^1.1.0"
902 | constants-browserify "^1.0.0"
903 | crypto-browserify "3.3.0"
904 | domain-browser "^1.1.1"
905 | events "^1.0.0"
906 | https-browserify "0.0.1"
907 | os-browserify "^0.2.0"
908 | path-browserify "0.0.0"
909 | process "^0.11.0"
910 | punycode "^1.2.4"
911 | querystring-es3 "^0.2.0"
912 | readable-stream "^2.0.5"
913 | stream-browserify "^2.0.1"
914 | stream-http "^2.3.1"
915 | string_decoder "^0.10.25"
916 | timers-browserify "^2.0.2"
917 | tty-browserify "0.0.0"
918 | url "^0.11.0"
919 | util "^0.10.3"
920 | vm-browserify "0.0.4"
921 |
922 | node-pre-gyp@^0.6.29:
923 | version "0.6.36"
924 | resolved "http://registry.npm.taobao.org/node-pre-gyp/download/node-pre-gyp-0.6.36.tgz#db604112cb74e0d477554e9b505b17abddfab786"
925 | dependencies:
926 | mkdirp "^0.5.1"
927 | nopt "^4.0.1"
928 | npmlog "^4.0.2"
929 | rc "^1.1.7"
930 | request "^2.81.0"
931 | rimraf "^2.6.1"
932 | semver "^5.3.0"
933 | tar "^2.2.1"
934 | tar-pack "^3.4.0"
935 |
936 | nopt@^4.0.1:
937 | version "4.0.1"
938 | resolved "http://registry.npm.taobao.org/nopt/download/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
939 | dependencies:
940 | abbrev "1"
941 | osenv "^0.1.4"
942 |
943 | normalize-path@^2.0.1:
944 | version "2.1.1"
945 | resolved "http://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
946 | dependencies:
947 | remove-trailing-separator "^1.0.1"
948 |
949 | npmlog@^4.0.2:
950 | version "4.1.0"
951 | resolved "http://registry.npm.taobao.org/npmlog/download/npmlog-4.1.0.tgz#dc59bee85f64f00ed424efb2af0783df25d1c0b5"
952 | dependencies:
953 | are-we-there-yet "~1.1.2"
954 | console-control-strings "~1.1.0"
955 | gauge "~2.7.3"
956 | set-blocking "~2.0.0"
957 |
958 | number-is-nan@^1.0.0:
959 | version "1.0.1"
960 | resolved "http://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
961 |
962 | oauth-sign@~0.8.1:
963 | version "0.8.2"
964 | resolved "http://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
965 |
966 | object-assign@^4.0.1, object-assign@^4.1.0:
967 | version "4.1.1"
968 | resolved "http://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
969 |
970 | object.omit@^2.0.0:
971 | version "2.0.1"
972 | resolved "http://registry.npm.taobao.org/object.omit/download/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
973 | dependencies:
974 | for-own "^0.1.4"
975 | is-extendable "^0.1.1"
976 |
977 | once@^1.3.0, once@^1.3.3:
978 | version "1.4.0"
979 | resolved "http://registry.npm.taobao.org/once/download/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
980 | dependencies:
981 | wrappy "1"
982 |
983 | optimist@~0.6.0:
984 | version "0.6.1"
985 | resolved "http://registry.npm.taobao.org/optimist/download/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
986 | dependencies:
987 | minimist "~0.0.1"
988 | wordwrap "~0.0.2"
989 |
990 | os-browserify@^0.2.0:
991 | version "0.2.1"
992 | resolved "http://registry.npm.taobao.org/os-browserify/download/os-browserify-0.2.1.tgz#63fc4ccee5d2d7763d26bbf8601078e6c2e0044f"
993 |
994 | os-homedir@^1.0.0:
995 | version "1.0.2"
996 | resolved "http://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
997 |
998 | os-tmpdir@^1.0.0:
999 | version "1.0.2"
1000 | resolved "http://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
1001 |
1002 | osenv@^0.1.4:
1003 | version "0.1.4"
1004 | resolved "http://registry.npm.taobao.org/osenv/download/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644"
1005 | dependencies:
1006 | os-homedir "^1.0.0"
1007 | os-tmpdir "^1.0.0"
1008 |
1009 | pako@~0.2.0:
1010 | version "0.2.9"
1011 | resolved "http://registry.npm.taobao.org/pako/download/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75"
1012 |
1013 | parse-glob@^3.0.4:
1014 | version "3.0.4"
1015 | resolved "http://registry.npm.taobao.org/parse-glob/download/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
1016 | dependencies:
1017 | glob-base "^0.3.0"
1018 | is-dotfile "^1.0.0"
1019 | is-extglob "^1.0.0"
1020 | is-glob "^2.0.0"
1021 |
1022 | path-browserify@0.0.0:
1023 | version "0.0.0"
1024 | resolved "http://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a"
1025 |
1026 | path-is-absolute@^1.0.0:
1027 | version "1.0.1"
1028 | resolved "http://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
1029 |
1030 | pbkdf2-compat@2.0.1:
1031 | version "2.0.1"
1032 | resolved "http://registry.npm.taobao.org/pbkdf2-compat/download/pbkdf2-compat-2.0.1.tgz#b6e0c8fa99494d94e0511575802a59a5c142f288"
1033 |
1034 | performance-now@^0.2.0:
1035 | version "0.2.0"
1036 | resolved "http://registry.npm.taobao.org/performance-now/download/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
1037 |
1038 | preserve@^0.2.0:
1039 | version "0.2.0"
1040 | resolved "http://registry.npm.taobao.org/preserve/download/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
1041 |
1042 | process-nextick-args@~1.0.6:
1043 | version "1.0.7"
1044 | resolved "http://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
1045 |
1046 | process@^0.11.0:
1047 | version "0.11.10"
1048 | resolved "http://registry.npm.taobao.org/process/download/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
1049 |
1050 | prr@~0.0.0:
1051 | version "0.0.0"
1052 | resolved "http://registry.npm.taobao.org/prr/download/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a"
1053 |
1054 | punycode@1.3.2:
1055 | version "1.3.2"
1056 | resolved "http://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
1057 |
1058 | punycode@^1.2.4, punycode@^1.4.1:
1059 | version "1.4.1"
1060 | resolved "http://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
1061 |
1062 | qs@~6.4.0:
1063 | version "6.4.0"
1064 | resolved "http://registry.npm.taobao.org/qs/download/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
1065 |
1066 | querystring-es3@^0.2.0:
1067 | version "0.2.1"
1068 | resolved "http://registry.npm.taobao.org/querystring-es3/download/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
1069 |
1070 | querystring@0.2.0:
1071 | version "0.2.0"
1072 | resolved "http://registry.npm.taobao.org/querystring/download/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
1073 |
1074 | randomatic@^1.1.3:
1075 | version "1.1.6"
1076 | resolved "http://registry.npm.taobao.org/randomatic/download/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb"
1077 | dependencies:
1078 | is-number "^2.0.2"
1079 | kind-of "^3.0.2"
1080 |
1081 | rc@^1.1.7:
1082 | version "1.2.1"
1083 | resolved "http://registry.npm.taobao.org/rc/download/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95"
1084 | dependencies:
1085 | deep-extend "~0.4.0"
1086 | ini "~1.3.0"
1087 | minimist "^1.2.0"
1088 | strip-json-comments "~2.0.1"
1089 |
1090 | readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.6:
1091 | version "2.2.10"
1092 | resolved "http://registry.npm.taobao.org/readable-stream/download/readable-stream-2.2.10.tgz#effe72bb7c884c0dd335e2379d526196d9d011ee"
1093 | dependencies:
1094 | core-util-is "~1.0.0"
1095 | inherits "~2.0.1"
1096 | isarray "~1.0.0"
1097 | process-nextick-args "~1.0.6"
1098 | safe-buffer "^5.0.1"
1099 | string_decoder "~1.0.0"
1100 | util-deprecate "~1.0.1"
1101 |
1102 | readdirp@^2.0.0:
1103 | version "2.1.0"
1104 | resolved "http://registry.npm.taobao.org/readdirp/download/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78"
1105 | dependencies:
1106 | graceful-fs "^4.1.2"
1107 | minimatch "^3.0.2"
1108 | readable-stream "^2.0.2"
1109 | set-immediate-shim "^1.0.1"
1110 |
1111 | regex-cache@^0.4.2:
1112 | version "0.4.3"
1113 | resolved "http://registry.npm.taobao.org/regex-cache/download/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145"
1114 | dependencies:
1115 | is-equal-shallow "^0.1.3"
1116 | is-primitive "^2.0.0"
1117 |
1118 | remove-trailing-separator@^1.0.1:
1119 | version "1.0.1"
1120 | resolved "http://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.0.1.tgz#615ebb96af559552d4bf4057c8436d486ab63cc4"
1121 |
1122 | repeat-element@^1.1.2:
1123 | version "1.1.2"
1124 | resolved "http://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a"
1125 |
1126 | repeat-string@^1.5.2:
1127 | version "1.6.1"
1128 | resolved "http://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
1129 |
1130 | request@^2.81.0:
1131 | version "2.81.0"
1132 | resolved "http://registry.npm.taobao.org/request/download/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
1133 | dependencies:
1134 | aws-sign2 "~0.6.0"
1135 | aws4 "^1.2.1"
1136 | caseless "~0.12.0"
1137 | combined-stream "~1.0.5"
1138 | extend "~3.0.0"
1139 | forever-agent "~0.6.1"
1140 | form-data "~2.1.1"
1141 | har-validator "~4.2.1"
1142 | hawk "~3.1.3"
1143 | http-signature "~1.1.0"
1144 | is-typedarray "~1.0.0"
1145 | isstream "~0.1.2"
1146 | json-stringify-safe "~5.0.1"
1147 | mime-types "~2.1.7"
1148 | oauth-sign "~0.8.1"
1149 | performance-now "^0.2.0"
1150 | qs "~6.4.0"
1151 | safe-buffer "^5.0.1"
1152 | stringstream "~0.0.4"
1153 | tough-cookie "~2.3.0"
1154 | tunnel-agent "^0.6.0"
1155 | uuid "^3.0.0"
1156 |
1157 | right-align@^0.1.1:
1158 | version "0.1.3"
1159 | resolved "http://registry.npm.taobao.org/right-align/download/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
1160 | dependencies:
1161 | align-text "^0.1.1"
1162 |
1163 | rimraf@2, rimraf@^2.5.1, rimraf@^2.6.1:
1164 | version "2.6.1"
1165 | resolved "http://registry.npm.taobao.org/rimraf/download/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d"
1166 | dependencies:
1167 | glob "^7.0.5"
1168 |
1169 | ripemd160@0.2.0:
1170 | version "0.2.0"
1171 | resolved "http://registry.npm.taobao.org/ripemd160/download/ripemd160-0.2.0.tgz#2bf198bde167cacfa51c0a928e84b68bbe171fce"
1172 |
1173 | safe-buffer@^5.0.1:
1174 | version "5.1.0"
1175 | resolved "http://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.0.tgz#fe4c8460397f9eaaaa58e73be46273408a45e223"
1176 |
1177 | semver@^5.3.0:
1178 | version "5.3.0"
1179 | resolved "http://registry.npm.taobao.org/semver/download/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
1180 |
1181 | set-blocking@~2.0.0:
1182 | version "2.0.0"
1183 | resolved "http://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
1184 |
1185 | set-immediate-shim@^1.0.1:
1186 | version "1.0.1"
1187 | resolved "http://registry.npm.taobao.org/set-immediate-shim/download/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61"
1188 |
1189 | setimmediate@^1.0.4:
1190 | version "1.0.5"
1191 | resolved "http://registry.npm.taobao.org/setimmediate/download/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
1192 |
1193 | sha.js@2.2.6:
1194 | version "2.2.6"
1195 | resolved "http://registry.npm.taobao.org/sha.js/download/sha.js-2.2.6.tgz#17ddeddc5f722fb66501658895461977867315ba"
1196 |
1197 | signal-exit@^3.0.0:
1198 | version "3.0.2"
1199 | resolved "http://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
1200 |
1201 | sntp@1.x.x:
1202 | version "1.0.9"
1203 | resolved "http://registry.npm.taobao.org/sntp/download/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
1204 | dependencies:
1205 | hoek "2.x.x"
1206 |
1207 | source-list-map@^1.1.1:
1208 | version "1.1.2"
1209 | resolved "http://registry.npm.qima-inc.com/source-list-map/download/source-list-map-1.1.2.tgz#9889019d1024cce55cdc069498337ef6186a11a1"
1210 |
1211 | source-list-map@~0.1.7:
1212 | version "0.1.8"
1213 | resolved "http://registry.npm.taobao.org/source-list-map/download/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106"
1214 |
1215 | source-map@^0.5.6, source-map@~0.5.1, source-map@~0.5.3:
1216 | version "0.5.6"
1217 | resolved "http://registry.npm.taobao.org/source-map/download/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
1218 |
1219 | source-map@~0.4.1:
1220 | version "0.4.4"
1221 | resolved "http://registry.npm.taobao.org/source-map/download/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
1222 | dependencies:
1223 | amdefine ">=0.0.4"
1224 |
1225 | sshpk@^1.7.0:
1226 | version "1.13.0"
1227 | resolved "http://registry.npm.taobao.org/sshpk/download/sshpk-1.13.0.tgz#ff2a3e4fd04497555fed97b39a0fd82fafb3a33c"
1228 | dependencies:
1229 | asn1 "~0.2.3"
1230 | assert-plus "^1.0.0"
1231 | dashdash "^1.12.0"
1232 | getpass "^0.1.1"
1233 | optionalDependencies:
1234 | bcrypt-pbkdf "^1.0.0"
1235 | ecc-jsbn "~0.1.1"
1236 | jodid25519 "^1.0.0"
1237 | jsbn "~0.1.0"
1238 | tweetnacl "~0.14.0"
1239 |
1240 | stream-browserify@^2.0.1:
1241 | version "2.0.1"
1242 | resolved "http://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db"
1243 | dependencies:
1244 | inherits "~2.0.1"
1245 | readable-stream "^2.0.2"
1246 |
1247 | stream-http@^2.3.1:
1248 | version "2.7.1"
1249 | resolved "http://registry.npm.taobao.org/stream-http/download/stream-http-2.7.1.tgz#546a51741ad5a6b07e9e31b0b10441a917df528a"
1250 | dependencies:
1251 | builtin-status-codes "^3.0.0"
1252 | inherits "^2.0.1"
1253 | readable-stream "^2.2.6"
1254 | to-arraybuffer "^1.0.0"
1255 | xtend "^4.0.0"
1256 |
1257 | string-width@^1.0.1, string-width@^1.0.2:
1258 | version "1.0.2"
1259 | resolved "http://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
1260 | dependencies:
1261 | code-point-at "^1.0.0"
1262 | is-fullwidth-code-point "^1.0.0"
1263 | strip-ansi "^3.0.0"
1264 |
1265 | string_decoder@^0.10.25:
1266 | version "0.10.31"
1267 | resolved "http://registry.npm.taobao.org/string_decoder/download/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
1268 |
1269 | string_decoder@~1.0.0:
1270 | version "1.0.1"
1271 | resolved "http://registry.npm.taobao.org/string_decoder/download/string_decoder-1.0.1.tgz#62e200f039955a6810d8df0a33ffc0f013662d98"
1272 | dependencies:
1273 | safe-buffer "^5.0.1"
1274 |
1275 | stringstream@~0.0.4:
1276 | version "0.0.5"
1277 | resolved "http://registry.npm.taobao.org/stringstream/download/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
1278 |
1279 | strip-ansi@^3.0.0, strip-ansi@^3.0.1:
1280 | version "3.0.1"
1281 | resolved "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
1282 | dependencies:
1283 | ansi-regex "^2.0.0"
1284 |
1285 | strip-json-comments@~2.0.1:
1286 | version "2.0.1"
1287 | resolved "http://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
1288 |
1289 | supports-color@3.1.2, supports-color@^3.1.0:
1290 | version "3.1.2"
1291 | resolved "http://registry.npm.taobao.org/supports-color/download/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5"
1292 | dependencies:
1293 | has-flag "^1.0.0"
1294 |
1295 | supports-color@^2.0.0:
1296 | version "2.0.0"
1297 | resolved "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
1298 |
1299 | tapable@^0.1.8, tapable@~0.1.8:
1300 | version "0.1.10"
1301 | resolved "http://registry.npm.taobao.org/tapable/download/tapable-0.1.10.tgz#29c35707c2b70e50d07482b5d202e8ed446dafd4"
1302 |
1303 | tar-pack@^3.4.0:
1304 | version "3.4.0"
1305 | resolved "http://registry.npm.taobao.org/tar-pack/download/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984"
1306 | dependencies:
1307 | debug "^2.2.0"
1308 | fstream "^1.0.10"
1309 | fstream-ignore "^1.0.5"
1310 | once "^1.3.3"
1311 | readable-stream "^2.1.4"
1312 | rimraf "^2.5.1"
1313 | tar "^2.2.1"
1314 | uid-number "^0.0.6"
1315 |
1316 | tar@^2.2.1:
1317 | version "2.2.1"
1318 | resolved "http://registry.npm.taobao.org/tar/download/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
1319 | dependencies:
1320 | block-stream "*"
1321 | fstream "^1.0.2"
1322 | inherits "2"
1323 |
1324 | timers-browserify@^2.0.2:
1325 | version "2.0.2"
1326 | resolved "http://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.2.tgz#ab4883cf597dcd50af211349a00fbca56ac86b86"
1327 | dependencies:
1328 | setimmediate "^1.0.4"
1329 |
1330 | to-arraybuffer@^1.0.0:
1331 | version "1.0.1"
1332 | resolved "http://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
1333 |
1334 | tough-cookie@~2.3.0:
1335 | version "2.3.2"
1336 | resolved "http://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a"
1337 | dependencies:
1338 | punycode "^1.4.1"
1339 |
1340 | tty-browserify@0.0.0:
1341 | version "0.0.0"
1342 | resolved "http://registry.npm.taobao.org/tty-browserify/download/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
1343 |
1344 | tunnel-agent@^0.6.0:
1345 | version "0.6.0"
1346 | resolved "http://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
1347 | dependencies:
1348 | safe-buffer "^5.0.1"
1349 |
1350 | tweetnacl@^0.14.3, tweetnacl@~0.14.0:
1351 | version "0.14.5"
1352 | resolved "http://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
1353 |
1354 | type-detect@0.1.1:
1355 | version "0.1.1"
1356 | resolved "http://registry.npm.taobao.org/type-detect/download/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822"
1357 |
1358 | type-detect@^1.0.0:
1359 | version "1.0.0"
1360 | resolved "http://registry.npm.taobao.org/type-detect/download/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2"
1361 |
1362 | uglify-js@^2.7.3, uglify-js@~2.7.3:
1363 | version "2.7.5"
1364 | resolved "http://registry.npm.taobao.org/uglify-js/download/uglify-js-2.7.5.tgz#4612c0c7baaee2ba7c487de4904ae122079f2ca8"
1365 | dependencies:
1366 | async "~0.2.6"
1367 | source-map "~0.5.1"
1368 | uglify-to-browserify "~1.0.0"
1369 | yargs "~3.10.0"
1370 |
1371 | uglify-to-browserify@~1.0.0:
1372 | version "1.0.2"
1373 | resolved "http://registry.npm.taobao.org/uglify-to-browserify/download/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
1374 |
1375 | uid-number@^0.0.6:
1376 | version "0.0.6"
1377 | resolved "http://registry.npm.taobao.org/uid-number/download/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81"
1378 |
1379 | url@^0.11.0:
1380 | version "0.11.0"
1381 | resolved "http://registry.npm.taobao.org/url/download/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
1382 | dependencies:
1383 | punycode "1.3.2"
1384 | querystring "0.2.0"
1385 |
1386 | util-deprecate@~1.0.1:
1387 | version "1.0.2"
1388 | resolved "http://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
1389 |
1390 | util@0.10.3, util@^0.10.3:
1391 | version "0.10.3"
1392 | resolved "http://registry.npm.taobao.org/util/download/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
1393 | dependencies:
1394 | inherits "2.0.1"
1395 |
1396 | uuid@^3.0.0:
1397 | version "3.0.1"
1398 | resolved "http://registry.npm.taobao.org/uuid/download/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1"
1399 |
1400 | verror@1.3.6:
1401 | version "1.3.6"
1402 | resolved "http://registry.npm.taobao.org/verror/download/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c"
1403 | dependencies:
1404 | extsprintf "1.0.2"
1405 |
1406 | vm-browserify@0.0.4:
1407 | version "0.0.4"
1408 | resolved "http://registry.npm.taobao.org/vm-browserify/download/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73"
1409 | dependencies:
1410 | indexof "0.0.1"
1411 |
1412 | watchpack@^0.2.1:
1413 | version "0.2.9"
1414 | resolved "http://registry.npm.taobao.org/watchpack/download/watchpack-0.2.9.tgz#62eaa4ab5e5ba35fdfc018275626e3c0f5e3fb0b"
1415 | dependencies:
1416 | async "^0.9.0"
1417 | chokidar "^1.0.0"
1418 | graceful-fs "^4.1.2"
1419 |
1420 | webpack-core@~0.6.9:
1421 | version "0.6.9"
1422 | resolved "http://registry.npm.taobao.org/webpack-core/download/webpack-core-0.6.9.tgz#fc571588c8558da77be9efb6debdc5a3b172bdc2"
1423 | dependencies:
1424 | source-list-map "~0.1.7"
1425 | source-map "~0.4.1"
1426 |
1427 | webpack-sources@^0.2.3:
1428 | version "0.2.3"
1429 | resolved "http://registry.npm.qima-inc.com/webpack-sources/download/webpack-sources-0.2.3.tgz#17c62bfaf13c707f9d02c479e0dcdde8380697fb"
1430 | dependencies:
1431 | source-list-map "^1.1.1"
1432 | source-map "~0.5.3"
1433 |
1434 | webpack@^1.13.3:
1435 | version "1.15.0"
1436 | resolved "http://registry.npm.taobao.org/webpack/download/webpack-1.15.0.tgz#4ff31f53db03339e55164a9d468ee0324968fe98"
1437 | dependencies:
1438 | acorn "^3.0.0"
1439 | async "^1.3.0"
1440 | clone "^1.0.2"
1441 | enhanced-resolve "~0.9.0"
1442 | interpret "^0.6.4"
1443 | loader-utils "^0.2.11"
1444 | memory-fs "~0.3.0"
1445 | mkdirp "~0.5.0"
1446 | node-libs-browser "^0.7.0"
1447 | optimist "~0.6.0"
1448 | supports-color "^3.1.0"
1449 | tapable "~0.1.8"
1450 | uglify-js "~2.7.3"
1451 | watchpack "^0.2.1"
1452 | webpack-core "~0.6.9"
1453 |
1454 | wide-align@^1.1.0:
1455 | version "1.1.2"
1456 | resolved "http://registry.npm.taobao.org/wide-align/download/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710"
1457 | dependencies:
1458 | string-width "^1.0.2"
1459 |
1460 | window-size@0.1.0:
1461 | version "0.1.0"
1462 | resolved "http://registry.npm.taobao.org/window-size/download/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
1463 |
1464 | wordwrap@0.0.2:
1465 | version "0.0.2"
1466 | resolved "http://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
1467 |
1468 | wordwrap@~0.0.2:
1469 | version "0.0.3"
1470 | resolved "http://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
1471 |
1472 | wrappy@1:
1473 | version "1.0.2"
1474 | resolved "http://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
1475 |
1476 | xtend@^4.0.0:
1477 | version "4.0.1"
1478 | resolved "http://registry.npm.taobao.org/xtend/download/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
1479 |
1480 | yargs@~3.10.0:
1481 | version "3.10.0"
1482 | resolved "http://registry.npm.taobao.org/yargs/download/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
1483 | dependencies:
1484 | camelcase "^1.0.2"
1485 | cliui "^2.1.0"
1486 | decamelize "^1.0.0"
1487 | window-size "0.1.0"
1488 |
--------------------------------------------------------------------------------