我正在使用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
。
我很困惑。
答案 0 :(得分:0)
作为__dirname的替代方法,您可以使用节点处理模块。我刚刚确认,对于我的电子项目,这将返回源代码的根文件夹的完整路径:
import process from 'process';
console.log(`path: ${process.cwd()});