javascript - Electron 无法获取当前文件路径

标签 javascript reactjs webpack electron

我正在使用 electron 编写桌面应用程序和 react .我用 create-react-app在我的项目中,我运行 npm run start首先在 http://localhost:3000 运行我的应用程序然后在 index.jselectron :

win.loadURL(url.format({
        pathname: process.env.NODE_ENV === "development" ? 
           "localhost:3000":path.join(__dirname, 'build/index.html'),
        protocol: 'http:',
        slashes: true
    }));
}

你看,开发的时候我想用webpack-dev-server重新加载我的组件,所以 electron运行webpack-dev-server持有的在线内容.一切似乎都很好,但是当我使用 fs像这样读取本地文件:
// /src/components/SideBar.js
fs.readFile(path.join(__dirname,'./src/actions/index.js'),(err,data)=>{
    if(err){
         throw err;
         return;
    }
    // ...
})

它出现了找不到文件的错误,我试图提醒结果路径:
alert(path.join(__dirname,'./test.txt'))

显示路径为/test.txt ,但真正的路径是/project/src/test.txt .我发现:
alert(__filename);

它总是 /index.js在任何文件中。

我很困惑。

最佳答案

作为 __dirname 的替代方法,您可以使用节点进程模块。我刚刚确认,对于我的 Electron 项目,这将返回我的源代码根文件夹的完整路径:

import process from 'process';
console.log(`path: ${process.cwd()});

关于javascript - Electron 无法获取当前文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49842447/

相关文章:

docker - 节点 webpack 挂起。如何调试?

javascript - Mongoose - 填充数组类型嵌套对象时的 .populate 问题

javascript - 创建要加载的 JSON 的订单

reactjs - 导入的 react node_module 中的 Typescript 编译错误,即使它被排除在 tsconfig.json 中

css - 在 Office UI Fabric 中设置 `PivotItem` 的宽度

node.js - 执行 npm run sonarqube-scanner-node 命令时出错

javascript - 为什么 AWS SQS 这么慢?

JavaScript 获取函数值

authentication - 对 Auth 0's lock.on(' 已验证') 事件调度操作

javascript - 在启用监视和启动服务器的情况下运行 webpack