Comparing version 0.5.9 to 0.6.0
@@ -15,6 +15,9 @@ var debug = require('debug')('clam:compile'); | ||
var mocker = require('./mocker.js'); | ||
var assetsTool = require('./assetsTool'); | ||
var scriptExtern = /<script[^>]*? src=['"](.+?)['"].*?><\/script>/g; | ||
var styleExtern = /<link rel="stylesheet"[^>]*? href=['"](.+?)['"].*>/g; | ||
var assetsToolExtern = /\$assetsTool.(use|require|injectScript|injectStyle)\(['"]\S*['"]\)/g; | ||
var recoverAssetsToolExtern = /\{\{__assetsTool__\d*\}\}/g; | ||
var assetsToolPrefix = '__assetsTool__'; | ||
@@ -41,4 +44,46 @@ /** | ||
} | ||
/** | ||
* 解析assetsTool内容 | ||
* @param content | ||
* @returns content | ||
*/ | ||
function parseAssetsTool(content){ | ||
var assetsToolPositionCount = -1; | ||
var assetsMap = []; | ||
var pageContent = content.replace(assetsToolExtern, function ($1, $2, $3) { | ||
saveAssetsMap(assetsMap,$1,++assetsToolPositionCount); | ||
return '\{\{'+assetsToolPrefix + assetsToolPositionCount + '\}\}'; | ||
}); | ||
return recoverAssetsTool(pageContent,assetsMap); | ||
} | ||
/** | ||
* 生成assetsTool的模块列表 | ||
*/ | ||
function saveAssetsMap(root,content,pos){ | ||
root.push({ | ||
express:content, | ||
id:pos | ||
}); | ||
} | ||
/** | ||
* 复原assetsTool | ||
* @param content | ||
* @returns content | ||
*/ | ||
function recoverAssetsTool(content,map){ | ||
function getAssets(id){ | ||
var ret = ''; | ||
assetsTool.feLoader(map).forEach(function(i){ | ||
if(i.id == id){ | ||
ret = i.express; | ||
} | ||
}); | ||
return ret; | ||
} | ||
content = content.replace(recoverAssetsToolExtern, function ($1, $2, $3) { | ||
return getAssets(parseInt($1.split(assetsToolPrefix)[1])); | ||
}); | ||
return content; | ||
} | ||
/** | ||
* 解析页面内容 | ||
@@ -148,7 +193,7 @@ * @param page 页面路径 | ||
} | ||
//获取当前页面到源代码根目录的相对路径 | ||
//获取当前页面到源代码根目录的相对路径 | ||
var srcRoot = path.join(config.root(), 'src'); | ||
var urlDir = path.relative(srcRoot, path.dirname(page)); | ||
debug('引用文件相对路径:%s', urlDir); | ||
pageContent = assetUrl.toAbsolutePath(pageContent, urlDir); | ||
@@ -208,6 +253,5 @@ return pageContent; | ||
if (!fs.existsSync(page)) { | ||
return ''; | ||
} | ||
//处理cdnpath中最后一个'/'符号。如果有,去掉。 | ||
@@ -218,2 +262,4 @@ if (cdnPath[cdnPath.length - 1] === '/') { | ||
var pageContent = textWithOnlineAssetsUrl(rootContent, page, cdnPath); | ||
//解析assetsTool | ||
pageContent = parseAssetsTool(pageContent); | ||
var pageParam = parsePageParam(pageContent); | ||
@@ -227,3 +273,3 @@ | ||
param = parentParam; | ||
} | ||
@@ -293,3 +339,3 @@ else{ | ||
} | ||
} | ||
@@ -296,0 +342,0 @@ debug('传递的参数是%s', util.inspect(passedParam)); |
@@ -166,2 +166,2 @@ var fs = require('fs'); | ||
exports.on = on; | ||
exports.init = init; | ||
exports.init = init; |
{ | ||
"name": "clam", | ||
"version": "0.5.9", | ||
"version": "0.6.0", | ||
"description": "A full Web front end develop envirment.", | ||
@@ -25,3 +25,3 @@ "main": "index.js", | ||
"send":"0.1.0", | ||
"civet":"git://github.com/xudafeng/civet.git" | ||
"civet":"1.2.1" | ||
}, | ||
@@ -28,0 +28,0 @@ "devDependencies": {}, |
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 1 instance in 1 package
Git dependency
Supply chain riskContains a dependency which resolves to a remote git URL. Dependencies fetched from git URLs are not immutable and can be used to inject untrusted code or reduce the likelihood of a reproducible install.
Found 1 instance in 1 package
345955
93
5814
0
31
10
Updatedcivet@1.2.1