style: scripts, eslint

master
Evgeny Poberezkin 2017-03-11 20:36:09 +00:00
parent ae3e5d431c
commit 8485849c40
4 changed files with 38 additions and 39 deletions

View File

@ -14,7 +14,7 @@
],
"scripts": {
"jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*",
"eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec",
"eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts",
"test-spec": "mocha spec/*.spec.js -R spec",
"test-fast": "AJV_FAST_TEST=true npm run test-spec",
"test-debug": "mocha spec/*.spec.js --debug-brk -R spec",

3
scripts/.eslintrc.yml Normal file
View File

@ -0,0 +1,3 @@
rules:
no-console: 0
no-empty: [2, allowEmptyCatch: true]

View File

@ -6,51 +6,44 @@ var compress = process.argv[4];
var fs = require('fs');
var packageDir = __dirname + '/..';
if ('.' !== pkg) {
packageDir += '/node_modules/' + pkg;
}
if ('.' !== pkg) packageDir += '/node_modules/' + pkg;
var json = JSON.parse(fs.readFileSync(packageDir + '/package.json', 'utf8'));
var distDir = __dirname + '/../dist';
if (!fs.existsSync(distDir)) {
fs.mkdirSync(distDir);
}
if (!fs.existsSync(distDir)) fs.mkdirSync(distDir);
var browserify = require('browserify');
var bo = {};
if (standalone) {
bo.standalone = standalone;
}
if (standalone) bo.standalone = standalone;
var b = browserify(bo);
b.require(packageDir + '/' + json.main, {expose: json.name});
var outputPath = distDir + '/' + json.name + '.bundle.js';
b.bundle().pipe(fs.createWriteStream(outputPath)).on('close', function () {
var UglifyJS = require("uglify-js");
var uglifyOpts = {
warnings: true,
compress: {},
output: {
preamble: '/* ' + json.name + ' ' + json.version + ': ' + json.description + ' */'
}
};
if (compress) {
var compressOpts = compress.split(',');
for (var i = 0, l = compressOpts.length; i<l; ++i) {
var pair = compressOpts[i].split('=');
uglifyOpts.compress[pair[0]] = pair.length < 1 || 'false' !== pair[1];
}
}
if (standalone) {
uglifyOpts.outSourceMap = json.name + '.min.js.map';
uglifyOpts.mangle = {except: [standalone]};
}
var result = UglifyJS.minify(distDir + '/' + json.name + '.bundle.js', uglifyOpts);
fs.writeFileSync(distDir + '/' + json.name + '.min.js', result.code);
if (result.map) {
fs.writeFileSync(distDir + '/' + json.name + '.min.js.map', result.map);
b.bundle().pipe(fs.createWriteStream(outputPath)).on('close', function () {
var UglifyJS = require('uglify-js');
var uglifyOpts = {
warnings: true,
compress: {},
output: {
preamble: '/* ' + json.name + ' ' + json.version + ': ' + json.description + ' */'
}
if (!standalone) {
fs.unlinkSync(distDir + '/' + json.name + '.bundle.js');
};
if (compress) {
var compressOpts = compress.split(',');
for (var i = 0, l = compressOpts.length; i<l; ++i) {
var pair = compressOpts[i].split('=');
uglifyOpts.compress[pair[0]] = pair.length < 1 || 'false' !== pair[1];
}
});
}
if (standalone) {
uglifyOpts.outSourceMap = json.name + '.min.js.map';
uglifyOpts.mangle = {except: [standalone]};
}
var result = UglifyJS.minify(distDir + '/' + json.name + '.bundle.js', uglifyOpts);
fs.writeFileSync(distDir + '/' + json.name + '.min.js', result.code);
if (result.map) fs.writeFileSync(distDir + '/' + json.name + '.min.js.map', result.map);
if (!standalone) fs.unlinkSync(distDir + '/' + json.name + '.bundle.js');
});

View File

@ -1,4 +1,5 @@
//compile doT templates to js functions
'use strict';
var glob = require('glob')
, fs = require('fs')
@ -26,8 +27,10 @@ console.log('\n\nCompiling:');
var FUNCTION_NAME = /function\s+anonymous\s*\(it[^)]*\)\s*{/;
var OUT_EMPTY_STRING = /out\s*\+=\s*'\s*';/g;
var ISTANBUL = /\'(istanbul[^']+)\';/g;
var VARS = ['$errs', '$valid', '$lvl', '$data', '$dataLvl',
'$errorKeyword', '$closingBraces', '$schemaPath'];
var VARS = [
'$errs', '$valid', '$lvl', '$data', '$dataLvl',
'$errorKeyword', '$closingBraces', '$schemaPath'
];
files.forEach(function (f) {
var keyword = path.basename(f, '.jst');