nodejs
package.json
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",
xcopy
deploy.js
刪除文件夾
clean.js
rmdir /S /Q ${dir1} ...
nodejs其他例子
1
// 遍歷目錄
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
2
// 輸出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);
}); */
使用nodejs文件中的屬性
注意使用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"
}