电子无法获得当前文件路径

时间:2018-04-15 13:24:50

标签: javascript reactjs webpack electron

我正在使用electronreact编写桌面应用程序。我在项目中使用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

我很困惑。

1 个答案:

答案 0 :(得分:0)

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

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