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