0
私はyamlファイルをロードしたいjsアプリ(Electronと一緒にパッケージ化されている)を持っています。 app.getAppPath()
はapp.asar
ファイルにアクセスできますが、開発中には\node_modules\electron-prebuilt\dist\resources\default_app.asar
というパスが返されているため、アプリをパッケージ化した時点で次のように動作します。javascriptでローカルファイルにアクセス
fs.readFileSync(`${app.getAppPath()}/src/app/data/items.yml`, 'utf8')
これを回避する方法はありますか?私のyamlファイルは、アプリケーションの残りの部分と同じディレクトリに置かないのですか?
items.en .yml ') 'を実行して同じディレクトリにある' data.js'からファイルを取得します。これは '\ items.yml'を返し、' fs.readFileSync'でそれを使用すると、 'C:\ items.yml'にあるファイルを検索しようとします。間違ったfsモジュールを使用していますか、ymlファイルからデータを取得する方法はありますか? – schwift
@schwifty同じディレクトリにあるファイルにアクセスする場合は、 'path.join(__ dirname、 'items.en.yml')'となります。しかし、あなたが書いたものであっても、 'path.join()'は '\ items.yml'を返すべきではないと思います。' __dirname'が空でない場合、 '__dirname'が実際に' dataの中に設定されているものを確認してください。 jsである。 –
'__dirname'は私に'/'を与えます - それが何か違いがあれば、私は現時点でWindows上にいます。 – schwift