2017-04-04 14 views
1

私はVueとElectronを使ってデスクトップアプリケーションを構築しています。私は、ユーザーによって導入されたいくつかのデータでvueコンポーネントからファイルを保存したいと思います。そのために、私はvuexアクション内でfsノードモジュールを使用しようとしましたが、エラーが出ます。そのモジュールを見つけることができません。私はVueがクライアント側であることを知っていますが、私はElectronを使っているときにはうまくいくと思っていましたが、それはできません。私のアプリを初期化するために、私はvue-cliとコマンドvue init webpack electron-vueを使用しました。 私はシステムをvuex使用して、あまりにもvuexモジュールを使用して、私はFSモジュールを使用しようとしたactions.jsファイルてきましたよ:私はVueのコンポーネント、元からこのアクションを呼び出すとvue +電子メールをディスクに書き込む方法

// import * as fs from 'fs'; I used this way at first 
const fs = require('fs'); 
export const writeToFile = ({commit}) => { 
fs.writeFileSync('/path/file.json', JSON.stringify(someObjectHere)); 
}; 

を、オプション.vue、私はそのコンポーネントの作成()メソッドでは、vuex派遣システムを使用し、そして:Vueのとで電子にファイルシステムを使用するように私に言及

+0

'fs'を使うには' require 'する必要があります。試したコードを表示してください。 – Bert

答えて

1

上記のエラーを上げています

this.$store.dispatch('writeToFile') 

のWebPACK 、ファイルシステムインスタンスはdist/index.htmlで宣言されなければなりません後のコマンド「NPM実行ビルド」

<script> 
    var fs = require('fs'); 
</script> 

とVUEのコンポーネントで実行、それはそれはVUEファイルで宣言されていたであろう場合のようにFSを使用していました。

... 
export const writeToFile = ({commit}) => { 
    fs.writeFileSync('/path/file.json', SON.stringify(someObjectHere)) 
}; 
... 

電子で使用しないでください、またはdevにインデックスに書き込むとエラーになります。