New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

yk-cmp

Package Overview
Dependencies
Maintainers
1
Versions
63
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

yk-cmp - npm Package Compare versions

Comparing version 0.1.24 to 0.1.25

201

index.js
/**
* Created by wangshiqiang on 20160321.
* 该工具是将前端静态资源,从开发目录,发布到待发布目录
* 在这个过程中,针对静态资源文件,进行了压缩和版本号的控制
* 修改相关文件(含jsp页面)对该资源的引用
* 只提供银客网内部自行使用,使用前请到default.json文件中,配置相关默认值
* 在这个过程中,针对静态资源文件,进行了压缩和版本号的控制,并修改相关文件对该资源的引用
* 只供银客集团内部自行使用
* 目前只支持windows系统

@@ -15,4 +14,8 @@ *

* 无
===== 功能使用1: =====
目录、文件自动清理功能。
若/dev/目录中的,某个目录或文件有移除,只需在/v1/目录下执行以下命令,即可将/revs/目录、filesMap.json文件中,对应的内容自动移除,无需手动清除:
yk-cmp -c
功能使用:
===== 功能使用2: =====
1、银客理财

@@ -100,3 +103,5 @@ PC、WAP、APP三端都在/v1/目录下,执行以下命令进行编译:yk-cmp

var fs = require('fs'),
path = require('path');
path = require('path'),
os = require('os');
//var operatorUser = os.userInfo().username;
var rd = require('rd');

@@ -132,96 +137,2 @@ var readdirSync = require('fsk-readdir').readdirSync;

// 项目 域名切换功能
/*var isLoanWbMast = cwd.indexOf('/loan_wb_mast/') != -1,
isLoanWbTest = cwd.indexOf('/loan_wb_test/') != -1,
isLoanHao123Mast = cwd.indexOf('/loan_hao123_mast/') != -1,
isLoanHao123Test = cwd.indexOf('/loan_hao123_test/') != -1;
function updateDomain(switchType){
console.time('耗时:');
rd.each(cwd, function(_file, _stat, next){
if(_stat.isFile()){ // 如果是文件
var extName = path.extname(_file);
if(extName === '.js' || extName === '.css' || extName === '.tpl'){
var _cont = fs.readFileSync(_file, 'utf8');
// 微博项目
if(isLoanWbMast || isLoanWbTest){
if(switchType == 'toTest'){ // 切换为测试环境域名
_cont = _cont.replace(/xiaowei\.yinker\.com/gm, 'qa-xiaowei.yinker.com');
}else if(switchType == 'toMast'){ // 切换为生产环境域名
_cont = _cont.replace(/xiaowei\.yinker\.com/gm, 'jieqian.sc.weibo.com');
}else if(!switchType){ // 测试域名或生产域名,还原为开发域名
_cont = _cont.replace(/qa-xiaowei\.yinker\.com/gm, 'xiaowei.yinker.com')
.replace(/jieqian\.sc\.weibo\.com/gm, 'xiaowei.yinker.com');
}
}
// hao123项目
if(isLoanHao123Mast || isLoanHao123Test){
if(switchType == 'toTest'){ // 切换为测试环境域名
_cont = _cont.replace(/jietiao\.yinker\.com/gm, 'qa-jietiao.yinker.com');
}else if(switchType == 'toMast'){ // 切换为生产环境域名
_cont = _cont.replace(/jietiao\.yinker\.com/gm, 'xiaojietiao.yinker.com');
}else if(!switchType){ // 测试域名或生产域名,还原为开发域名
_cont = _cont.replace(/qa-jietiao\.yinker\.com/gm, 'jietiao.yinker.com')
.replace(/xiaojietiao\.yinker\.com/gm, 'jietiao.yinker.com');
}
}
fs.writeFileSync(_file, _cont, 'utf8');
}
}
next();
}, function(err){
var _domain;
if(isLoanWbMast || isLoanWbTest){
_domain = '====>开发:xiaowei.yinker.com';
if(switchType == 'toTest'){
_domain = '开发:xiaowei.yinker.com ====>测试:qa-xiaowei.yinker.com';
}else if(switchType == 'toMast'){
_domain = '开发:xiaowei.yinker.com ====>生产:jieqian.sc.weibo.com';
}
}
if(isLoanHao123Mast || isLoanHao123Test){
_domain = '====>开发:jietiao.yinker.com';
if(switchType == 'toTest'){
_domain = '开发:jietiao.yinker.com ====>测试:qa-jietiao.yinker.com';
}else if(switchType == 'toMast'){
_domain = '开发:jietiao.yinker.com ====>生产:xiaojietiao.yinker.com';
}
}
console.log('操作成功! '.green);
console.log(_domain.green);
console.timeEnd('耗时:');
});
}
if(isLoanWbMast || isLoanWbTest || isLoanHao123Mast || isLoanHao123Test){
if(!/.+(\/v1)$/.test(cwd)){
console.log('\n ERROR:请检查当前命令运行的所在目录!'.red);
return false;
}
if(isLoanWbMast || isLoanHao123Mast){
if(argv.toDev){
updateDomain();
}else if(argv.toMast){
updateDomain('toMast');
}else{
console.log('\n ERROR:请检查当前运行命令或参数!'.red);
}
}else if(isLoanWbTest || isLoanHao123Test){
if(argv.toDev){
updateDomain();
}else if(argv.toTest){
updateDomain('toTest');
}else{
console.log('\n ERROR:请检查当前运行命令或参数!'.red);
}
}else{
console.log('\n ERROR:请检查当前运行命令或参数!'.red);
}
return false;
}*/
// 小V贷款项目 域名切换功能 END
var staticUrl,

@@ -320,32 +231,53 @@ devDir,

// /revs/目录、filesMap.json文件中,文件清理
// if(argv.clear){
// rd.each(outputDir, function(_file, _stat, next){
// console.log(_file, ' || ');
// var switchDev = outputDir.replace('', '$2');
// var isHave = fs.existsSync(_dst); // 获取目标路径下的资源,是否存在
// if()
// next();
// }, function(err){
console.time(' 耗时');
// });
// return false;
// }
/*
* /revs/目录、filesMap.json文件内容清理
*/
if(argv.clear){
var delFiles = 0,
delDir = 0;
function callDeleteFunction(dir, cb){
rd.each(dir, function(_file, _stat, next){
/*
* @example:
* _file: {String} 'E:\revs\js' || 'E:\revs\js\zepto.js'
* _stat: {Object} 状态信息
*
*/
_file = _file.split(path.sep).join('/'); // 将'\'格式为'/'
var switchDev = _file.replace(/\/revs\//, '/dev/');
var isHave = fs.existsSync(switchDev); // 获取目标路径下的资源,是否存在
if(!isHave){
if(_stat.isFile()){
fs.unlinkSync(_file);
var keyName = staticUrl + _file.substring(_file.indexOf('/revs/') + 6);
delete filesMapJson[keyName]; // 删除 filesMap.json 中对应的属性
delFiles ++;
console.log(' DelFile:'.magenta + _file);
}else if(_stat.isDirectory()){
fs.rmdir(_file, function(err){
if(!err){
delDir ++;
console.log(' DelDir:'.magenta + _file);
}else{
callDeleteFunction(_file);
}
});
}
}
next();
}, function(err){
cb && cb.call(this);
});
};
// 单独添加版本号 -- PS:暂时有冲突问题,先不在项目中应用
// function addVersion(f){
// var fsContent = fs.readFileSync(f, 'utf8').replace(/(\.com\/v1)\/dev\//gm, '$1/revs/');
// for(var key in filesMapJson){
// var _reg = new RegExp(key, 'gm');
// fsContent = fsContent.replace(/(\.com\/v1\/revs\/[^\?]+)\?v=[a-z0-9]{0,8}/gm, '$1')
// .replace(_reg, key + '?v=' + filesMapJson[key].split('|')[0].substr(0, 8));
// }
// fs.writeFileSync(f, fsContent, 'utf8');
// }
callDeleteFunction(outputDir, function(){
fs.writeFileSync(filesMap, JSON.stringify(filesMapJson, null, 2));
console.log('\n ===== 本次共删除:'+ delFiles +' 个文件,'+ delDir +' 个文件夹 =====');
console.timeEnd(' 耗时');
});
return false;
}
// var readCont = fs.readFileSync('e:/fe/loan_wb/trunk/v1/revs/css/pages/home.css');console.log(readCont + ' AAAAAA');
// return;
// 资源压缩(css、js)

@@ -370,11 +302,2 @@ function compress(c, t){

});
// var readCont = fs.readFile(c, 'utf8');
// _code = new CleanCss({ // 是否换行:{keepBreaks: true}
// compatibility: {
// properties: {
// iePrefixHack:true,
// ieBangHack: true
// }
// }
// }).minify(readCont).styles;
}

@@ -510,6 +433,6 @@ }

var _val = val.replace(/.*\/(js\/|tpls\/)+(.*\.js$)/, '$1$2'); // _val: js/yk.apps.js
// compress(_targetPath, '.js'); // 文件压缩
// replaceNewUrl(_targetPath); // 替换url dev -> revs
//compress(_targetPath, '.js'); // 文件压缩
//replaceNewUrl(_targetPath); // 替换url dev -> revs
// filesMapJson[staticUrl + _val] = _md5Hex + '|' + callTimes;
// relatedFileReplace(jsOutput, _val, _v);
//relatedFileReplace(jsOutput, _val, _v);

@@ -532,3 +455,3 @@ setTimeout(function(){

// var _hours = (needTime / 1000 / 60 / 60).toString().split('.')[1];
//console.log('\n Compile success!\n'.cyan + ' ===== 共编译提交:' + mapPath.length + ' 个文件;耗时:'+ (needTime / 1000 / 60 / 60).toString().split('.')[0] +' 小时 '+ (!_hours ? 0 : (Number( '0.' + _hours) * 60).toString().split('.')[0]) +' 分 '+ (!_second ? 0 : (Number( '0.' + _second) * 60).toString().split('.')[0]) +' 秒 ===== ');
// console.log('\n Compile success!\n'.cyan + ' ===== 共编译构建:' + mapPath.length + ' 个文件;耗时:'+ (needTime / 1000 / 60 / 60).toString().split('.')[0] +' 小时 '+ (!_hours ? 0 : (Number( '0.' + _hours) * 60).toString().split('.')[0]) +' 分 '+ (!_second ? 0 : (Number( '0.' + _second) * 60).toString().split('.')[0]) +' 秒 ===== ');
});

@@ -535,0 +458,0 @@

{
"name": "yk-cmp",
"description": "静态资源,从开发目录,发布到待发布目录,进行了压缩和版本号控制。修改相关文件对该资源的引用。",
"version": "0.1.24",
"version": "0.1.25",
"author": {

@@ -6,0 +6,0 @@ "name": "Wangshiqiang",

* 前端资源构建编译工具
command:yk-cmp
Command:
yk-cmp // 构建编译
yk-cmp -c // 清理输出目录(/revs/)垃圾文件
##### 如何安装 ##
============ 如何安装 ============
npm install yk-cmp -g
============ 功能使用 ============
... Please view index.js file from document root;
... Please view index.js file from document root;
============ 功能使用 END ============
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc