fs.existsSync 不是 Angular (5) 中的函数
Posted
技术标签:
【中文标题】fs.existsSync 不是 Angular (5) 中的函数【英文标题】:fs.existsSync is not a function in Angular (5) 【发布时间】:2018-02-19 01:57:42 【问题描述】:我正在尝试通过 Visual Studio Code 运行 Angular 5 应用程序 - 代码编译时没有错误,但在 localhost:4200 上查看时收到“fs.existsSync 不是函数”错误。完整的错误信息是
module.exports< devmode.js:33 <anonymous> devmode.js:31 <anonymous> devmode.js:1 ./node_modules/selenium-webdriver/lib/devmode.js http://localhost:4200/vendor.bundle.js:1084:1
__webpack_require__ http://localhost:4200/inline.bundle.js:55:12 <anonymous> http.js:32 <anonymous> http.js:1 ./node_modules/selenium-webdriver/lib/http.js http://localhost:4200/vendor.bundle.js:1108:1
__webpack_require__ http://localhost:4200/inline.bundle.js:55:12 <anonymous> index.js:29 <anonymous> index.js:1 ./node_modules/selenium-webdriver/http/index.js http://localhost:4200/vendor.bundle.js:1044:1
__webpack_require__ http://localhost:4200/inline.bundle.js:55:12 <anonymous> login.component.ts:1 ./src/app/login/login.component.ts http://localhost:4200/main.bundle.js:284:1
__webpack_require__ http://localhost:4200/inline.bundle.js:55:12 <anonymous> app.module.ts:24 ./src/app/app.module.ts http://localhost:4200/main.bundle.js:107:1
__webpack_require__ http://localhost:4200/inline.bundle.js:55:12 <anonymous> main.ts:4 ./src/main.ts http://localhost:4200/main.bundle.js:403:1
__webpack_require__ http://localhost:4200/inline.bundle.js:55:12 [0] http://localhost:4200/main.bundle.js:411:18
__webpack_require__ http://localhost:4200/inline.bundle.js:55:12 webpackJsonpCallback http://localhost:4200/inline.bundle.js:26:23 <anonymous> http://localhost:4200/main.bundle.js:1:1
与此错误相关的其他问题提到了 Electron,但我没有使用该软件包。
我对这一切都不熟悉,所以不知道我应该提供哪些其他信息。如果有帮助,我的 npm 版本是 5.6.0,node 版本是 6.11.0,我的 package.json 的内容是:
"dependencies":
"@angular/animations": "^5.2.0",
"@angular/common": "^5.2.0",
"@angular/compiler": "^5.2.0",
"@angular/core": "^5.2.0",
"@angular/forms": "^5.2.0",
"@angular/http": "^5.2.0",
"@angular/platform-browser": "^5.2.0",
"@angular/platform-browser-dynamic": "^5.2.0",
"@angular/router": "^5.2.0",
"core-js": "^2.4.1",
"ngx-bootstrap": "^2.0.2",
"ngx-cookie-service": "^1.0.10",
"rxjs": "^5.5.6",
"zone.js": "^0.8.19"
,
"devDependencies":
"@angular/cli": "~1.7.0",
"@angular/compiler-cli": "^5.2.0",
"@angular/language-service": "^5.2.0",
"@types/jasmine": "~2.8.3",
"@types/jasminewd2": "~2.0.2",
"@types/node": "~6.0.60",
"codelyzer": "^4.0.1",
"jasmine-core": "~2.8.0",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~2.0.0",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "^1.2.1",
"karma-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~5.1.2",
"ts-node": "~4.1.0",
"tslint": "~5.9.1",
"typescript": "~2.5.3"
我需要在我的代码中查找什么来修复此错误?
谢谢
【问题讨论】:
您是如何运行该应用程序的?项目是什么?是 Angular CLI 还是其他?请提供一种复制问题的方法(一个 repo 左右)以及执行此操作所需的所有详细信息。selenium-webdriver
是 Node 包。它应该由 Node 在 e2e 测试中使用,并且从未包含在 Webpack 浏览器包中。
感谢您的关注。您所做的“selenium-webdriver”引用是关键 - 此应用程序是使用 Angular 4 创建的,并且其中一个导入语句 - import HttpClient from 'selenium-webdriver/http';- 尚未删除。欣赏线索!干杯/汤姆
很高兴它有帮助。
Electron & Angular: fs.existsSync is not a function的可能重复
【参考方案1】:
嗯,这似乎是来自您的编辑器的恶意自动导入。它是从 WebDriver
导入 HttpClient
而不是 Angular。
使用这个:
import HttpClient from '@angular/common/http';
【讨论】:
以上是关于fs.existsSync 不是 Angular (5) 中的函数的主要内容,如果未能解决你的问题,请参考以下文章
Browserify / Electron / AngularJS 错误:fs.existsSync 不是函数
TypeError:fs.existsSync 不是函数(Electron/ReactJS/Typescript)
fs.exists 和 fs.existsSync 之间的区别