nodejs
scripts中,注意 set值时 变量会带空格,处理方式 内容里取出变量空格,方式二 直接使用&&连接
如: set PARAM=/AFE/AE && echo 111 会带空格,不带空格 set PARAM=/AFE/AE&& echo 111
可以安装
cross-env 来设置环境变量 npm install corss-env
"view": "set NODE_ENV=development && node view.js",
"view-cross-env": "cross-env NODE_ENV=development node view.js",
deploy.js
clean.js
rmdir /S /Q ${dir1} ...
// 遍历目录
var fs = require('fs');
var path = require('path');
var exec = require('child_process').exec;
function readFileList(dir, filesList = []) {
const files = fs.readdirSync(dir);
console.log(files);
files.forEach((item, index) => {
var fullPath = path.join(dir, item);
const stat = fs.statSync(fullPath);
if (stat.isDirectory()) {
readFileList(path.join(dir, item), filesList); //递归读取文件
} else {
filesList.push(fullPath);
}
});
return filesList;
}
console.log("__dirname", __dirname);
var filesList = [];
readFileList(__dirname,filesList);
console.log(filesList);
// __dirname 项目文件夹路径
// 获取目录下所有文件
const files = fs.readdirSync(dir);
// 同步复制文件copyFileSync; 异步复制文件 fs.copyFile
// fs.copyFileSync
// fs.rmdirSync
// 输出package.json下 name变量
console.log(process.env.npm_package_name); // foo
console.log(process.env.npm_package_version); // 1.2.5
console.log(process.env.npm_package_repository_url); // 1.2.5
console.log(process.env.NODE_ENV); // 1.2.5
var exec = require('child_process').exec;
// var cmdStr = "echo {\"a\":\"abc\"}";
var cmdStr = "echo abc && dir";
var ar = new Array();
console.log(ar.push(111))
var testParam = "aaa";
var str = "sdfwef 888 ${testParam } 999";
console.log(str);
// var re = new RegExp("\\w+");
// var re = /\w+/;
// str = str.replace(/\$\{\s*testParam\}/, testParam)
// 替换占位符
str = str.replace(new RegExp("\\$\{\\s*" + "testParam" + "\\s*\}"), testParam);
console.log(str);
exec(cmdStr, function(err, stdout, stderr){
if(err) {
console.log('get weather api error:'+stderr);
} else {
/*
这个stdout的内容就是上面我curl出来的这个东西:
{"weatherinfo":{"city":"北京","cityid":"101010100","temp":"3","WD":"西北风","WS":"3级","SD":"23%","WSE":"3","time":"21:20","isRadar":"1","Radar":"JC_RADAR_AZ9010_JB","njd":"暂无实况","qy":"1019"}}
*/
// var data = JSON.parse(stdout);
console.log(stdout);
}
});
/* 子进程调用系统命令
free = spawn('free', ['-m']);
// 捕获标准输出并将其打印到控制台
free.stdout.on('data', function (data) {
console.log('standard output:\n' + data);
});
// 捕获标准错误输出并将其打印到控制台
free.stderr.on('data', function (data) {
console.log('standard error output:\n' + data);
});
// 注册子进程关闭事件
free.on('exit', function (code, signal) {
console.log('child process eixt ,exit:' + code);
}); */
注意使用npm_package_
“view-bat”: “echo %npm_package_version%”, window系统变量,package.json中的属性
“view-bash”: “echo $npm_package_version”, linux 系统变量
"scripts": {
"pretest": "echo do pretest",
"test": "echo test",
"posttest": "echo do posttest",
"version": "echo version",
"view": "set NODE_ENV=development && node view.js",
"view-cross-env": "cross-env NODE_ENV=development node view.js",
"view-bat": "echo %npm_package_version%",
"view-bash": "echo $npm_package_version",
"view-file": "node file.js",
"view-tomcat": "echo %npm_package_userConfig_tomcatHome%/agge/sdf.json",
"copy": "node copy.js",
"clean": "chcp 65001 && set TOMCAT_HOME=H:\\mydir\\tomcat&& node clean.js"
}