如何在启动Vue项⽬的同时跑node.js脚本编写copyFile.js 脚本实现,将⽂件夹内所有⽂件和⼦⽂件夹拷贝到另外的⽂件夹中
注意 copyFile.js 属于后端脚本,需要执⾏ node copyFile.js 运⾏
引⼊node环境中⾃带的两个模块 写⽂件模块和读⽂件模块
const fs = require(‘fs’);
const path = require(‘path’);
复制代码
以下两段代码是⼀个整体 :使⽤⽅法是直接调⽤ copyFolde(源⽂件相对路径,复制⽬标的相对路径) 函数将源⽂件拷贝到⽬标⽂件:
//!将srcPath路径的⽂件复制到tarPath cd为回调
var copyFile = function(srcPath, tarPath, cb) {
var rs = fs.createReadStream(srcPath);
<(‘error’, function(err) {
if (err) {
console.log(‘read error’, srcPath);
}
cb && cb(err);
})
var ws = fs.createWriteStream(tarPath);
<(‘error’, function(err) {
if (err) {js脚本开发
console.log(‘write error’, tarPath);
}
cb && cb(err);
})
<(‘close’, function(ex) {
cb && cb(ex);
})
rs.pipe(ws);
}
复制代码
将源⽂件夹下所有的⽂件和⼦⽂件夹,拷贝到⽬标⽂件夹下
//! 将srcDir⽂件下的⽂件、⽂件夹递归的复制到tarDir下 cd为回调
var copyFolder = function(srcDir, tarDir, cb) {
var count = 0;
var checkEnd = function() {
++count == files.length && cb && cb();
}
if (err) {
checkEnd();
return;
}
files.forEach(function(file) {
var srcPath = path.join(srcDir, file);
var tarPath = path.join(tarDir, file);
fs.stat(srcPath, function(err, stats) {
if (stats.isDirectory()) {
console.log('mkdir', tarPath);
fs.mkdir(tarPath, function(err) {
if (err) {
console.log(err);
return;
}
copyFolder(srcPath, tarPath, checkEnd);
});
} else {
copyFile(srcPath, tarPath, checkEnd);
}
});
});
//为空时直接回调
files.length === 0 && cb && cb();
});
}
复制代码
copyFile.js是基于node.js编写的后端脚本,哪问题来了,如何将后端脚本在Vue项⽬中运⾏,众所周知在Vue中启动项⽬是执⾏ npm run xxx ⽽copyFile.js的命令是 node copyFile.js
⽅案⼀:在同⼀个项⽬中打开两个命令⾏窗⼝ 分别执⾏ npm run xxx 和 node copyFile.js 效果作⽤在同⼀个项⽬中
打开两个窗⼝⼜是执⾏两个命令,⽅案⼀太⿇烦了。有没有什么⽅法只需要执⾏ npm run xxx 命令 便可达到⽅案⼀的效果
npm run xxx:会执⾏pakeage.json中在scripts中写的脚本命令,这些脚本就是node_modules/.bin中的⽂件名
⽅案⼆:设置启动多条命令 在package.json⽂件中配置
如果命令中包括空格,则需要使⽤()将命令包含起来。此外&&与&的作⽤也不同。
“scripts”: {
“serve”: “(node copyFile.js) && (vue-cli-service serve)”,
“start”: “webpack & (ng serve)”
},
复制代码
➊ 命令先后顺利执⾏。先执⾏node copyFile.js,该命令执⾏完毕后再执⾏vue-cli-service serve
➋ 命令⼀并执⾏。同时执⾏webpack以及ng serve两个命令
结语
创作不易,如果对⼤家有所帮助,希望⼤家点赞⽀持,有什么问题也可以在评论区⾥讨论 ~
如果你觉得这篇⽂章对你有点⽤的话,⿇烦请给我们的开源项⽬点点star: 不胜感激 !
来⾃ “开源独尊 ” ,链接:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论