duoms
Advanced tools
Comparing version 0.2.9 to 0.3.0
@@ -19,4 +19,4 @@ #!/usr/bin/env node | ||
// 配置信息 | ||
var pack_info, Bucket = { | ||
//配置信息 | ||
var cwd = process.cwd(), Bucket = { | ||
view: [ | ||
@@ -32,69 +32,36 @@ 'fine3q-res' | ||
// 解析项目信息 | ||
function getProjectInfo() { | ||
//获取项目信息 | ||
var packInfo = function(){ | ||
try { | ||
pack_info = require(path.join(process.cwd(), './package.json')); | ||
} catch (e) {} | ||
packInfo = require(path.join(cwd, './package.json')); | ||
} catch(e) {}; | ||
// 如果没有 package.json, 进行警告提示 | ||
if (!pack_info) { | ||
console.warn(colors.warn('没有 "package.json" 文件, 安全起见, 不予发布.')); | ||
if(!packInfo){ | ||
console.warn(colors.warn('合格的DuoMS项目根目录必须配有package.json文件')); | ||
return null; | ||
} | ||
// 检查项目名(决定了发布到 OSS 上的目录地址) | ||
if (!pack_info.name) { | ||
console.warn(colors.warn('"package.json" 文件中没有 "name" 字段, 无法发布.')); | ||
return null; | ||
} | ||
// 获取 repository 字段, 解析 repo 信息 | ||
var repo = pack_info.repository ? (pack_info.repository.url || '') : ''; | ||
repo.match(/[:\/](fe)\/(\S+)(.git)$/); | ||
// 检查是否 fe 组 | ||
if (RegExp.$1 !== 'fe') { | ||
console.warn(colors.warn('注意: 有可能不是 "fe" 组中的项目, 小心与线上目录冲突!')); | ||
return null; | ||
} | ||
// 检查 package.json 中的 name 字段是否和仓库名一致 | ||
if (RegExp.$2 !== pack_info.name) { | ||
console.warn(colors.warn('注意: "repository" 字段中的仓库名和 "name" 字段值不一致, 有可能与线上目录冲突!')); | ||
return null; | ||
} | ||
return { | ||
name: pack_info.name | ||
,dir: pack_info.duomsDir || 'build' // 需要发布的目录名称(默认取 build 目录) | ||
name: packInfo.name || '' | ||
,dir: packInfo.duomsDir || 'build' // 需要发布的目录名称(默认取 build 目录) | ||
}; | ||
} | ||
}(); | ||
function push(cmd) { | ||
/* | ||
// 发布前, 先进行用户身份信息验证 | ||
duoms_rc = auth(); | ||
//发布核心逻辑 | ||
var push = function(cmd) { | ||
// 如果没有用户信息, 直接将流程交给 auth | ||
if (!duoms_rc || !duoms_rc.userName) { | ||
return; | ||
} | ||
*/ | ||
if (!packInfo) return; | ||
// 检查项目配置信息 | ||
var pack_info = getProjectInfo(); | ||
if (!pack_info) return; | ||
//发布目录 | ||
var dir = path.join((cmd.dir && cmd.dir !== true) ? cmd.dir : ''); | ||
var root = path.join(process.cwd(), pack_info.dir, dir); | ||
var root = path.join(process.cwd(), packInfo.dir, dir); | ||
//暂时用dev目录作为测试环境 | ||
var target = cmd.prod ? pack_info.name : path.join('dev/', pack_info.name); | ||
var target = cmd.prod ? packInfo.name : path.join('dev/', packInfo.name); | ||
target = path.join(target, dir); | ||
//禁用项目名 | ||
var ban = pack_info.name.replace(/\s/g, '').match(/\bdev\b/) || []; | ||
var ban = packInfo.name.replace(/\s/g, '').match(/\bdev\b/) || []; | ||
if(ban[0]){ | ||
return console.warn(colors.warn('禁止使用'+ban[0]+'作为项目名')); | ||
return console.warn(colors.warn('禁止使用'+ ban[0] +'作为项目名')); | ||
} | ||
@@ -124,4 +91,4 @@ | ||
if(cmd.all){ | ||
[path.join('dev/', pack_info.name) | ||
,pack_info.name].forEach(function(item){ | ||
[path.join('dev/', packInfo.name) | ||
,packInfo.name].forEach(function(item){ | ||
oss(files, root, path.join(item, dir)); | ||
@@ -134,3 +101,3 @@ }); | ||
function oss(files, root, target) { | ||
var oss = function(files, root, target) { | ||
var config = {}; | ||
@@ -140,3 +107,3 @@ var target_log = target; | ||
console.log(''); | ||
console.log(colors.warn(/^dev\//.test(target_log) ? '测试环境' : '正式环境')); | ||
console.log(colors.warn((target_log === 'dev' || /^dev\//.test(target_log)) ? '测试环境' : '正式环境')); | ||
@@ -210,3 +177,7 @@ //验证是否进行了OSS配置 | ||
//根据文件类型,发布到不同的Bucket | ||
target = isHtml ? target_log : (/^dev\//.test(target_log) ? target_log.replace(/^(dev\/)/, '$1res/') : 'res/'+target_log); | ||
target = isHtml ? target_log : ( | ||
/^dev(\/)*/.test(target_log) | ||
? target_log.replace(/^(dev)(\/*)/, '$1/res/') | ||
: 'res/' + target_log | ||
); | ||
@@ -242,3 +213,3 @@ // 打印发布信息 | ||
// 解析 OSS 发布结果 | ||
function parseOSSRet(queue, target) { | ||
var parseOSSRet = function(queue, target) { | ||
var fails = queue.ret.filter(function(item) { | ||
@@ -245,0 +216,0 @@ return item.success === false; |
{ | ||
"name": "duoms", | ||
"version": "0.2.9", | ||
"version": "0.3.0", | ||
"description": "剁手管理系统基础服务", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
32721
491