File 使用npm将文件列表写入js文件
我想为npm编写一个脚本,该脚本执行以下操作:File 使用npm将文件列表写入js文件,file,npm,cross-platform,command-line-interface,File,Npm,Cross Platform,Command Line Interface,我想为npm编写一个脚本,该脚本执行以下操作: 获取文件夹(及其子文件夹)中的文件列表 将其写入JS文件,格式如下: module.exports = [ "folder/filename.png", "folder/subfolder/filename.png" ]; 我目前正在使用Linux中的cli这样做: echo 'module.exports = [' | tee files.js && find . -name "*png" | sed s:"./"
- 获取文件夹(及其子文件夹)中的文件列表
- 将其写入JS文件,格式如下:
module.exports = [ "folder/filename.png", "folder/subfolder/filename.png" ];
echo 'module.exports = [' | tee files.js && find . -name "*png" | sed s:"./":" '": | sed s:".png":".png',": | tee files.js --append && echo '];' | tee files.js --append
这有点做作,并不是真正的跨平台。是否有提供类似功能的npm包?我有点迷路了。我不觉得自己很傻。从未直接使用过node,但编写脚本来实现这一点并不重要
#!/usr/bin/env node
var fs = require('fs');
var list = [];
function traverse(folder) {
var files = fs.readdirSync(folder);
for (var i = 0; i < files.length; i++) {
if (files[i].indexOf('.png') > -1 || files[i].indexOf('.jpg') > -1) {
list.push(folder + "/" + files[i]);
console.log(i + folder + "/" + files[i]);
} else {
var path = folder + "/" + files[i];
if (fs.lstatSync(path).isDirectory()) {
traverse(path);
}
}
}
}
function start() {
traverse('./images');
var string = "module.exports = [\n";
for (var i = 0; i < list.length; i++) {
string += " '" + list[i];
if (list[i] !== list[list.length - 1]) {
string += "',\n";
} else {
string += "'\n];"
}
}
fs.writeFile("./src/assets.js", string, function (err) {
if (err) {
return console.log(err);
}
console.log("Assets file was updated!");
});
}
start();
#/usr/bin/env节点
var fs=需要('fs');
var列表=[];
函数遍历(文件夹){
var files=fs.readdirSync(文件夹);
对于(var i=0;i-1 | |文件[i].indexOf('.jpg')>-1){
list.push(文件夹+“/”+文件[i]);
log(i+文件夹+“/”+文件[i]);
}否则{
var path=文件夹+“/”+文件[i];
if(fs.lstatSync(path.isDirectory()){
导线(路径);
}
}
}
}
函数start(){
遍历('./图像');
var string=“module.exports=[\n”;
对于(变量i=0;i