2017-12-19 10 views
1

Electron 및 Angular5를 사용하여 첫 번째 데스크톱 응용 프로그램을 작성하려고하지만 불행히도 fs 모듈을 사용하는 데 막혔습니다.각도 5 안에 전자에서 노드 "fs"를 어떻게 사용할 수 있습니까

Uncaught TypeError: __WEBPACK_IMPORTED_MODULE_2_fs__.readFile is not a function 

이 내 서비스의 코드입니다 : 내가 제대로 FS (비주얼 스튜디오 코드 및 코드 완성 기능에서 오류없이) 내가이 오류에서 콘솔 인쇄 "fs.readFile"를 사용하여 시도 때를 가져온 것 같다 현재까지 :

import { Injectable } from '@angular/core'; 
import { ElectronService } from 'ngx-electron'; 
import * as fs from 'fs'; 
import { OpenDialogOptions } from 'electron'; 

@Injectable() 
export class FileService { 

    dialog = this._electronService.remote.dialog; 
    window = this._electronService.remote.getCurrentWindow(); 

    constructor(private _electronService: ElectronService) { } 

    loadFileContent(): void{ 
    this.dialog.showOpenDialog(this.window, {},(fileNames) => { 
     if(fileNames === undefined){ 
     console.error("no files selected!"); 
     return; 
     } 

     fs.readFile(fileNames[0], "utf-8", (err, data) => { 
     if(err){ 
      console.error("Cannot read file ",err); 
      return; 
     } 

     console.log("The content of the file is : "); 
     console.log(data); 
     }); 

    }); 
    } 
} 

여기에 뭔가가 있습니까? fs가로드되지 않았나? 여러분 모두를 도와 주셔서 감사합니다!

답변

2

kimy82의 의견을 통해 답변을 찾았습니다! 다음 그 후

ng eject 

내가 webpack.config.js를 열고 추가 :

"target": "node-webkit" 

먼저 내가 단순히 사용하여 Angular5의 webpack.config.js을 얻을 필요 간단하게 "노드"는 나에게 효과적이지 않았고 전자는 크롬을 사용하기 때문에 괜찮을 것입니다.

감사합니다.

0

브라우저가 서버의 파일 시스템에 액세스 할 수 없습니다. fs는 브라우저에로드되어서는 안됩니다.

+0

전자에서 파일 시스템에 액세스하는 다른 방법이 있습니까? 데스크톱 응용 프로그램 용으로 만들어졌으며 서버용으로 제작되지 않았습니다. 이 게시물로 인해 파일 시스템에 액세스 할 수는 있지만 각형 또는 타이프 스크립트로 작성되지 않았으므로이를 재현 할 수 없습니다. https://ourcodeworld.com/articles/read/106/how-to-choose-read- save-delete-or-create-a-electronic-framework – sonnenpriester

+0

각도 버전에 따라 webpack config에 액세스 할 수 있습니다. 당신이 그것을 바꿀 수 있다면. 목표를 노드로 설정하십시오. 일할 수도 있습니다. _target : 'node', _ – kimy82

+0

webpack 설정을 가져 오기 위해 프로젝트에서 eject를 실행했지만 빌드 파일이 손상되었습니다. Uncaught ReferenceError : exports가 정의되지 않았습니다 ... polyfills.bundle.js, vendors.bundle.js 및 main.bundle.js의 styles.bundle.js ... 웹에서 도움이 될지는 모르겠지만 어쩌면 너 더 잘 알지? – sonnenpriester