From 585ea0d233095f090de86d79c6e6601cdd8571ae Mon Sep 17 00:00:00 2001 From: m2 Date: Wed, 3 May 2017 15:31:09 +0800 Subject: [PATCH 1/3] Fix config argument --- lib/config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/config.js b/lib/config.js index c314efb..62bea43 100644 --- a/lib/config.js +++ b/lib/config.js @@ -115,7 +115,7 @@ module.exports = function (p) { process.chdir(p.workDir); } - let file = path.join(process.cwd(), '.labrador'); + let file = path.join(process.cwd(), p.config || '.labrador'); if (utils.isFile(file)) { try { From 75326d28c698ea42fdc2db5cafac126066891423 Mon Sep 17 00:00:00 2001 From: m2 Date: Thu, 11 May 2017 17:24:04 +0800 Subject: [PATCH 2/3] Add JSON LESS SASS global variables feature --- lib/build-json.js | 35 +++++++++++++++++++++++++++++++++++ lib/build-less.js | 8 ++++++++ lib/build-sass.js | 8 ++++++++ lib/build.js | 9 +++++++++ 4 files changed, 60 insertions(+) create mode 100644 lib/build-json.js diff --git a/lib/build-json.js b/lib/build-json.js new file mode 100644 index 0000000..c7b2803 --- /dev/null +++ b/lib/build-json.js @@ -0,0 +1,35 @@ +/** + * @copyright Maichong Software Ltd. 2016 http://maichong.it + * @date 2016-09-25 + * @author Liang + */ + +'use strict'; + +const fs = require('fs'); +const path = require('path'); +const mkdirp = require('mkdirp'); +const utils = require('./utils'); +const config = require('./config')(); +require('colors'); + +/** + * 编译JSON + * @param {FileInfo} from + * @param {FileInfo} to + * @returns {Array} + */ +module.exports = function* buildJSON(from, to) { + console.log('build json'.green, from.relative.blue, '->', to.relative.cyan); + let data = fs.readFileSync(from.file, 'utf8'); + + if (config.define) { + for (let key in config.define) { + let value = config.define[key]; + data = data.replace(new RegExp(utils.escapeRegExp(key), 'g'), JSON.stringify(value)); + } + } + + mkdirp.sync(to.dir); + fs.writeFileSync(to.file, data); +}; diff --git a/lib/build-less.js b/lib/build-less.js index b37b058..236ed52 100644 --- a/lib/build-less.js +++ b/lib/build-less.js @@ -66,6 +66,14 @@ module.exports = function* buildLess(from, to) { console.log('build less'.green, from.relative.blue, '->', to.relative.cyan); let depends = {}; let data = build(from, depends); + + if (config.define) { + for (let key in config.define) { + let value = config.define[key]; + data = data.replace(new RegExp(utils.escapeRegExp(key), 'g'), value); + } + } + let options = { paths: [from.dir] }; diff --git a/lib/build-sass.js b/lib/build-sass.js index c4e1e80..473c9f7 100644 --- a/lib/build-sass.js +++ b/lib/build-sass.js @@ -83,6 +83,14 @@ module.exports = function* buildSass(from, to) { const render = promisify(sass.render); let depends = {}; let data = build(from, depends); + + if (config.define) { + for (let key in config.define) { + let value = config.define[key]; + data = data.replace(new RegExp(utils.escapeRegExp(key), 'g'), value); + } + } + let result = yield render({ data, outputStyle: 'expanded', includePaths: [from.dir] }); if (!result.css) return []; mkdirp.sync(to.dir); diff --git a/lib/build.js b/lib/build.js index b84e769..53690d5 100644 --- a/lib/build.js +++ b/lib/build.js @@ -13,6 +13,7 @@ const mkdirp = require('mkdirp'); const UpdateNotifier = require('update-notifier').UpdateNotifier; const utils = require('./utils'); const buildJS = require('./build-js'); +const buildJSON = require('./build-json'); const buildLess = require('./build-less'); const buildSass = require('./build-sass'); const buildXML = require('./build-xml'); @@ -57,6 +58,14 @@ function* build(options) { case '.js': yield* buildJS(from, to, targets, metadata); break; + case '.json': + if (from.fromSrc === 'app.json' || utils.inPages(from.file)) { + targets[to.file] = true; + yield* buildJSON(from, to); + } else { + console.log('ignore'.yellow, from.relative.gray); + } + break; case '.less': if (from.fromSrc === 'app.less' || utils.inPages(from.file)) { targets[to.file] = true; From 1ac8d8591c7d2b799e2376004a506ac1c693c8dd Mon Sep 17 00:00:00 2001 From: m2 Date: Wed, 9 Aug 2017 15:12:44 +0800 Subject: [PATCH 3/3] + --- lib/build-json.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/build-json.js b/lib/build-json.js index c7b2803..e86d40c 100644 --- a/lib/build-json.js +++ b/lib/build-json.js @@ -32,4 +32,5 @@ module.exports = function* buildJSON(from, to) { mkdirp.sync(to.dir); fs.writeFileSync(to.file, data); + return [] };