Code snippets 在生成时插入带有npm脚本的html代码段

Code snippets 在生成时插入带有npm脚本的html代码段,code-snippets,inject,npm-scripts,Code Snippets,Inject,Npm Scripts,我有一个src文件夹和一个public文件夹。src文件夹有许多子文件夹,每个子文件夹都有一个index.html。在npm运行build时,每个文件夹都从src复制到public 我希望有一个npm脚本,它可以查找每个index.html文件,并在正文中插入一个html片段,就像带有徽标的div一样 我现在已经让netlify这么做了,但是我想把它合并到我的构建步骤中,并且希望避免使用gulp。感谢您提供的任何指导。我将此部分用于我只需要阅读公共目录和一层子目录的用途。但是,我似乎无法访问ad

我有一个
src
文件夹和一个
public
文件夹。
src
文件夹有许多子文件夹,每个子文件夹都有一个index.html。在
npm运行build
时,每个文件夹都从
src
复制到
public

我希望有一个npm脚本,它可以查找每个index.html文件,并在正文中插入一个html片段,就像带有徽标的div一样


我现在已经让netlify这么做了,但是我想把它合并到我的构建步骤中,并且希望避免使用gulp。感谢您提供的任何指导。

我将此部分用于我只需要阅读
公共
目录和一层子目录的用途。但是,我似乎无法访问
addsnippetoIndexes
fs函数之外的子目录变量。有什么想法吗?我试着在下面回电话,没有骰子。我是一个真正的节点n00b

const fs = require('fs');

const logo = '<div id="logo"><h1>my cool logo</h1></div>'
let subDirectories = []

function addSnippetToIndexes(directory){
    fs.readdir(directory, (err, files) => {
        if (err) {return console.log(err);}
        files.forEach(file => {
            if(file.substr(-5) === '.html'){
                fs.readFile(directory+file, 'utf8', function (err,data) {
                    if (err) {return console.log(err);}
                    let result = data.replace(/\<\/body>/g, logo + '</body>');
                    fs.writeFile(directory+file, result, 'utf8', function (err) {
                       if (err) return console.log(err);
                    });
                  });   
            }else{
                subDirectories.push(file)
            }
         });
         //I can access subDirectories here but not outside function?
    });
}
addSnippetToIndexes('./public/')
subDirectories.forEach(i => {addSnippetToIndexes(i)}) //THIS DOESNT WORK?
const fs=require('fs');
const logo='my cool logo'
让子目录=[]
函数addSnippetToIndexes(目录){
fs.readdir(目录,(错误,文件)=>{
if(err){return console.log(err);}
files.forEach(文件=>{
if(file.substr(-5)=='.html'){
readFile(目录+文件,'utf8',函数(err,data){
if(err){return console.log(err);}
让结果=数据。替换(/\/g,徽标+“”);
writeFile(目录+文件,结果'utf8',函数(err){
if(err)返回console.log(err);
});
});   
}否则{
子目录.push(文件)
}
});
//我可以在这里访问子目录,但不能在函数外部访问?
});
}
AddSnippetToIndex(“./public/”)
forEach(i=>{addSnippetToIndexes(i)})//这不起作用吗?

我得到了部分工作,用于我只需要读取
公共
目录和一层子目录的用途。但是,我似乎无法访问
addsnippetoIndexes
fs函数之外的子目录变量。有什么想法吗?我试着在下面回电话,没有骰子。我是一个真正的节点n00b

const fs = require('fs');

const logo = '<div id="logo"><h1>my cool logo</h1></div>'
let subDirectories = []

function addSnippetToIndexes(directory){
    fs.readdir(directory, (err, files) => {
        if (err) {return console.log(err);}
        files.forEach(file => {
            if(file.substr(-5) === '.html'){
                fs.readFile(directory+file, 'utf8', function (err,data) {
                    if (err) {return console.log(err);}
                    let result = data.replace(/\<\/body>/g, logo + '</body>');
                    fs.writeFile(directory+file, result, 'utf8', function (err) {
                       if (err) return console.log(err);
                    });
                  });   
            }else{
                subDirectories.push(file)
            }
         });
         //I can access subDirectories here but not outside function?
    });
}
addSnippetToIndexes('./public/')
subDirectories.forEach(i => {addSnippetToIndexes(i)}) //THIS DOESNT WORK?
const fs=require('fs');
const logo='my cool logo'
让子目录=[]
函数addSnippetToIndexes(目录){
fs.readdir(目录,(错误,文件)=>{
if(err){return console.log(err);}
files.forEach(文件=>{
if(file.substr(-5)=='.html'){
readFile(目录+文件,'utf8',函数(err,data){
if(err){return console.log(err);}
让结果=数据。替换(/\/g,徽标+“”);
writeFile(目录+文件,结果'utf8',函数(err){
if(err)返回console.log(err);
});
});   
}否则{
子目录.push(文件)
}
});
//我可以在这里访问子目录,但不能在函数外部访问?
});
}
AddSnippetToIndex(“./public/”)
forEach(i=>{addSnippetToIndexes(i)})//这不起作用吗?

这应该很简单,只需编写一个脚本,如“npm run build&&node addStuff”,其中addStuff是一个javascript文件,它使用fs模块读取index.html文件,解析要插入代码段的位置,插入代码段并重写文件。因此,我实现了这一点,但如何。。将其应用于每个index.html,并将其复制到具有相同层次结构的public?嗯,我希望如此,类似于console.log(fs.readdirSync(“./”,{withFileTypes:true}));将告诉您执行它的本地文件,您也可以在其中放置正确的路径。因此,编写一个在目录中查找的函数,如果它找到index.html,它将应用您编写的位,如果它找到目录,它将递归地应用现在在每个目录中查找的函数。关于层次结构,我的建议是让npm运行build来完成层次结构,然后将上述内容应用到公用文件夹中。非常感谢您为我指明了正确的方向!这应该很简单,只需编写一个类似“npm run build&&node addStuff”的脚本,其中addStuff是一个javascript文件,它使用fs模块读取index.html文件,解析插入代码段的位置,插入代码段并重写文件。。将其应用于每个index.html,并将其复制到具有相同层次结构的public?嗯,我希望如此,类似于console.log(fs.readdirSync(“./”,{withFileTypes:true}));将告诉您执行它的本地文件,您也可以在其中放置正确的路径。因此,编写一个在目录中查找的函数,如果它找到index.html,它将应用您编写的位,如果它找到目录,它将递归地应用现在在每个目录中查找的函数。关于层次结构,我的建议是让npm运行build来完成层次结构,然后将上述内容应用到公用文件夹中。非常感谢您为我指明了正确的方向!