【问题标题】:How to ignore multiple directories and files using electron releoad如何使用电子释放忽略多个目录和文件
【发布时间】:2019-11-02 17:29:51
【问题描述】:

我有一个使用electron-reload的Electron项目,文件结构是:

./public/templates/ --------- contains some html that should be watched and trigger reload
./public/templates/test/ ---- contains some test/experimental html that should be ignored/not trigger reload
./notes --------------------- just containing some notes, this should not trigger reload
./node_modules -------------- should be ignored
./main.js ------------------- should trigger reload on change

我知道我可以通过在 main.js 中将选项 ignored 设置为要求电子重新加载来忽略目录。 这使用 chokidar 进行过滤,忽略的选项描述为 here

但我不知道如何忽略多个路径。

我试图要求像这样重新加载电子:

require('electron-reload')(__dirname, {ignored: /node_modules|notes|public\/templates\/test/gi});

但是当我在 public/templates/test/ 应用程序正在重新加载。

  • electron 5.0.6
  • electron-reload 1.5.0

提前致谢 凯文

【问题讨论】:

    标签: javascript node.js regex electron chokidar


    【解决方案1】:

    您可以查看eletron-reload module

    electron_reload(路径,选项):

    • 路径:要查看的文件、目录或全局模式
    • 选项将默认为{ignored: /node_modules|[\/\\]\./, argv: []}

    然后在 ignored 字段中输入要忽略的正则表达式。可以查看正则表达式here

    例如,如果我想忽略我目录中的所有文件夹:node_modulesfiles/imgresorcesmain.js 将是:

    //main.js
    
    const ignoredNode = /node_modules|[/\\]\./;
    const ignored1 = /resources|[/\\]\./; // all folder resorces => resources
    const ignored2 = /files\/img|[/\\]\./; //all folder files/img => files/img
    
    if (process.env.NODE_ENV !== 'production'){
        require('electron-reload')(__dirname, {ignored: [ignored1, ignored2, ignoredNode] });   
    }

    这会阻止应用程序 reload 每当文件夹内发生更改时:node_modulesfiles/imgresorces

    现在你必须使用regular expressions 来达到你的目的。

    【讨论】:

    • 嗨@diegodavid,感谢您的回答,不幸的是它不起作用。我也试图忽略。测试模板由` const ignoreTestTemplates = /public\/templates\/test|[/\]\./; require('electron-reload')(__dirname, {ignored: [ignoredTestTemplates]});` 但每当我编辑目录中的文件时,应用程序仍在重新加载
    • 嗨@KevinKussmaul 我可以看到您的代码中缺少字符“\”。这必须在括号[/ \\] 内,注意有两个“\”。您的代码应如下所示:const ignoredTestTemplates = /public\/templates\/test|[/\\]\./; if (process.env.NODE_ENV !== 'production'){ require('electron-reload')(__dirname, {ignored: [ignoredTestTemplates] }); }
    • 如果public 文件夹在您的项目内部或外部,请注意您的__dirname 是什么。当public 文件夹位于您的项目中时,将使用此代码。
    猜你喜欢
    • 1970-01-01
    • 2011-02-02
    • 1970-01-01
    • 2017-10-18
    • 2017-06-29
    • 1970-01-01
    • 1970-01-01
    • 2020-08-22
    • 1970-01-01
    相关资源
    最近更新 更多