2017-09-01 22 views
0

我正在構建一個帶有angular2的小型web應用程序,迄今爲止唯一的依賴項是導航欄的引導程序。有一天,一切工作正常(包括我可以看到我的導航欄),有一天,我在另一臺機器上克隆我的回購,運行npm installng serve,添加一些組件/服務,並突然結束與該網站不加載和這在瀏覽器堆棧跟蹤(編譯沒有錯誤成功雖然):「fs.existsSync不是一個功能」沒有觸及任何相關的東西

Uncaught TypeError: fs.existsSync is not a function 
    at devmode.js:33 
    at Object.<anonymous> (devmode.js:34) 
    at Object.__webpack_require__.constructor.oneshot.fn (devmode.js:34) 
    at __webpack_require__ (bootstrap 5d37cea67e603e9113e4:52) 
    at Object.<anonymous> (http.js:32) 
    at Object.<anonymous> (http.js:567) 
    at __webpack_require__ (bootstrap 5d37cea67e603e9113e4:52) 
    at Object.<anonymous> (index.js:29) 
    at Object.<anonymous> (index.js:255) 
    at __webpack_require__ (bootstrap 5d37cea67e603e9113e4:52) 
    at Object.171 (quote.service.ts:7) 
    at __webpack_require__ (bootstrap 5d37cea67e603e9113e4:52) 
    at Object.170 (routing.module.ts:37) 
    at __webpack_require__ (bootstrap 5d37cea67e603e9113e4:52) 
    at Object.90 (best.component.ts:8) 
    at __webpack_require__ (bootstrap 5d37cea67e603e9113e4:52) 
    at Object.168 (app.component.ts:8) 
    at __webpack_require__ (bootstrap 5d37cea67e603e9113e4:52) 
    at Object.157 (src async:7) 
    at __webpack_require__ (bootstrap 5d37cea67e603e9113e4:52) 
    at Object.342 (main.bundle.js:549) 
    at __webpack_require__ (bootstrap 5d37cea67e603e9113e4:52) 
    at webpackJsonpCallback (bootstrap 5d37cea67e603e9113e4:23) 
    at main.bundle.js:1 
(anonymous) @ devmode.js:33 
(anonymous) @ devmode.js:34 
__webpack_require__.constructor.oneshot.fn @ devmode.js:34 
__webpack_require__ @ bootstrap 5d37cea67e603e9113e4:52 
(anonymous) @ http.js:32 
(anonymous) @ http.js:567 
__webpack_require__ @ bootstrap 5d37cea67e603e9113e4:52 
(anonymous) @ index.js:29 
(anonymous) @ index.js:255 
__webpack_require__ @ bootstrap 5d37cea67e603e9113e4:52 
171 @ quote.service.ts:7 
__webpack_require__ @ bootstrap 5d37cea67e603e9113e4:52 
170 @ routing.module.ts:37 
__webpack_require__ @ bootstrap 5d37cea67e603e9113e4:52 
90 @ best.component.ts:8 
__webpack_require__ @ bootstrap 5d37cea67e603e9113e4:52 
168 @ app.component.ts:8 
__webpack_require__ @ bootstrap 5d37cea67e603e9113e4:52 
157 @ src async:7 
__webpack_require__ @ bootstrap 5d37cea67e603e9113e4:52 
342 @ main.bundle.js:549 
__webpack_require__ @ bootstrap 5d37cea67e603e9113e4:52 
webpackJsonpCallback @ bootstrap 5d37cea67e603e9113e4:23 
(anonymous) @ main.bundle.js:1 

看到的錯誤一次後,我會看到它的其他機器太多,如果我推&拉,但顯然沒有什麼內容相關的邏輯之外改變了我補充說。

到目前爲止,我的研究顯示了大部分與電子有關的問題,我沒有使用它,或者我沒有做的文件系統操作。我在這裏錯過了很明顯的東西嗎

我已經做了一些常用的解決方法,如刪除node_modules &重新運行npm i,我在npm版本5.4.0和節點8.4.0上使用當前版本的WebStorm-IDE。

+2

問題是,當您部署到瀏覽器時,「fs」不存在,瀏覽器無法訪問文件系統。你只能在節點環境中使用'fs'。 – Li357

+0

@AndrewLi他試圖通過角度CLI構建他的應用程序,所以他實際上是在一個Node環境中 –

+0

嘗試將角CLI更新到最新版本 –

回答

0

如果以前的相同代碼基礎工作正常,並且以後出現故障:看起來問題是在兩種情況下都安裝了NPM軟件包的實際版本。

例如:

  • 我使用的NPM包,說specialPackage3.1.0
  • 版本在package.json我用它作爲~3.1.0
  • 第二天的specialPackage作者發佈了
  • 我想我的應用程序在不同的機器上的這一天有一些重大變化的新補丁(3.1.1)。同樣的package.json安裝3.1.1而不是3.1.0
  • 如果在第三方NPM軟件包中有任何問題,則應用程序可能會關閉。

我們該如何解決這個問題?

  • NPM < 5.0:一種方法是在package.json
  • NPM> = 5.0總是使用完全NPM包版本而不~^:一個新的package-log.json文件將被生成。我們需要將其添加到我們的存儲庫,以便我們期望我們預期的NPM包的確切版本。

你可以嘗試

  • 正如你說你正在使用NPM >= 5.0,你有一個package-lock.json在倉庫(package-lock.json與應用程序運行良好,創建)
  • 如果沒有可用,嘗試從其他計算機提交package-lock.json,然後再次嘗試npm i
  • 嘗試在t中使用精確的NPM程序包版本他package.json(通過刪除全部~^ s。
  • 您是否在兩臺計算機上使用相同版本的@angular/cli全局包?
+0

我回到了應用程序仍在工作的提交,分支出來,做了一些更改,直到應用程序崩潰,然後比較兩個分支的package-lock.json文件:它們是相同的。 :/ – Aarkon

+0

現在我觀察到了更糟糕的情況:我做了一些工作,總是看看我編譯的網站加載與否。一旦我看到突發變化發生,我撤消我最後一次行動,再次保存,並仍然看到它。/O \ – Aarkon