1
0
mirror of https://github.com/bobwen-dev/react-templates synced 2025-04-12 00:56:39 +02:00

add force option

This commit is contained in:
ido 2014-11-18 15:54:20 +02:00
parent 75323d07d7
commit 027787ce69
2 changed files with 18 additions and 9 deletions

15
src/cli.js Normal file → Executable file
View File

@ -8,7 +8,7 @@ var _ = require('lodash');
var path = require('path'); var path = require('path');
var reactTemplates = require('./reactTemplates'); var reactTemplates = require('./reactTemplates');
var pkg = require('../package.json'); var pkg = require('../package.json');
var options = {commonJS: false}; var options = {commonJS: false, force: false};
if (process.argv.length > 2) { if (process.argv.length > 2) {
var files = []; var files = [];
@ -17,23 +17,30 @@ if (process.argv.length > 2) {
console.log(pkg.version); console.log(pkg.version);
} else if (param === '-h' || param === '--help') { } else if (param === '-h' || param === '--help') {
printHelp(); printHelp();
} else if (param === '--common') { } else if (param === '-c' || param === '--common') {
options.commonJS = true; options.commonJS = true;
} else if (param === '-f' || param === '--force') {
options.force = true;
} else { } else {
files.push(param); files.push(param);
} }
}); });
_.forEach(files, handleSingleFile); _.forEach(files, handleSingleFile);
} else { } else {
printHelp(); printHelp();
} }
function printHelp() { function printHelp() {
console.log(pkg.name + ' ' + pkg.version);
console.log(pkg.description); console.log(pkg.description);
console.log(''); console.log('');
console.log('Usage:'); console.log('Usage:');
console.log(' $ node reactTemplates.js <filename>'); console.log(' $ rt <filename>[,<filename>] [<args>]');
console.log('');
console.log('Options:');
console.log(' -v, --version Outputs the version number.');
console.log(' -h, --help Show help.');
console.log(' --common Use Common JS output. default: false');
} }
function handleSingleFile(filename) { function handleSingleFile(filename) {

View File

@ -259,6 +259,7 @@ function extractDefinesFromJSXTag(html, defines) {
/** /**
* @param {string} html * @param {string} html
* @param {{commonJS:boolean}} options
* @return {string} * @return {string}
*/ */
function convertTemplateToReact(html, options) { function convertTemplateToReact(html, options) {
@ -271,7 +272,7 @@ function convertTemplateToReact(html,options) {
var body = convertHtmlToReact(rootNode.root()[0].children[0], context); var body = convertHtmlToReact(rootNode.root()[0].children[0], context);
var requirePaths = _(defines).keys().map(function (reqName) { return '"' + reqName + '"'; }).value().join(','); var requirePaths = _(defines).keys().map(function (reqName) { return '"' + reqName + '"'; }).value().join(',');
var requireVars = _(defines).values().value().join(','); var requireVars = _(defines).values().value().join(',');
var vars = _(defines).map(function (reqVar,reqPath) {return "var "+reqVar+" = require('"+reqPath+"');"}).join("\n"); var vars = _(defines).map(function (reqVar, reqPath) { return 'var ' + reqVar + " = require('" + reqPath + "');"; }).join('\n');
var data = {body: body, injectedFunctions: '', requireNames: requireVars, requirePaths: requirePaths, vars: vars}; var data = {body: body, injectedFunctions: '', requireNames: requireVars, requirePaths: requirePaths, vars: vars};
data.injectedFunctions = context.injectedFunctions.join('\n'); data.injectedFunctions = context.injectedFunctions.join('\n');
var code = options.commonJS ? templateCommonJSTemplate(data) : templateAMDTemplate(data); var code = options.commonJS ? templateCommonJSTemplate(data) : templateAMDTemplate(data);
@ -288,6 +289,7 @@ function convertTemplateToReact(html,options) {
/** /**
* @param {string} source * @param {string} source
* @param {{commonJS:boolean}} options
* @param {string} target * @param {string} target
*/ */
function convertFile(source, target, options) { function convertFile(source, target, options) {
@ -297,7 +299,7 @@ function convertFile(source, target, options) {
// } // }
var util = require('./util'); var util = require('./util');
if (!util.isStale(source, target)) { if (!options.force && !util.isStale(source, target)) {
console.log('target file ' + chalk.cyan(target) + ' is up to date, skipping'); console.log('target file ' + chalk.cyan(target) + ' is up to date, skipping');
// return; // return;
} }