好的,我将Angular从6升级到了8。但是我仍然出错。
我在互联网上发现了一个可以为许多用户提供帮助的解决方案。但是在这种情况下,它对我没有帮助。
所以我的package.json文件看起来像这样:
{
"name": "vital10-frontend",
"version": "0.55.0",
"license": "Unlicensed",
"scripts": {
"ng": "ng",
"start": "ng serve",
"hmr": "ng serve --configuration hmr",
"build": "ng build",
"build:prod": "npm run sass:prod && npm run vit10prod",
"build:acc": "npm run sass:prod && npm run vit10acc",
"build:test": "npm run sass:prod && npm run vit10test",
"build:dev": "npm run sass:prod && npm run vit10dev",
"test": "ng test",
"test:cover": "ng test --code-coverage",
"lint": "ng lint",
"e2e": "ng e2e",
"local": "ng serve -c local",
"analyze-bundle": "webpack-bundle-analyzer dist/stats.json",
"postinstall": "node patch-webpack.js",
"sass:watch": "sass --watch sass:src\\assets",
"sass:prod": "sass --update -f --style compressed --sourcemap=none sass:src\\assets",
"vit10dev": "ng build --prod -c vit10dev",
"vit10test": "ng build --prod -c vit10test",
"vit10acc": "ng build --prod -c vit10acc",
"vit10prod": "ng build --prod -c production"
},
"private": true,
"dependencies": {
"@angular/animations": "^8.1.2",
"@angular/cdk": "^7.3.7",
"@angular/common": "^8.1.2",
"@angular/compiler": "^8.1.2",
"@angular/core": "^8.1.2",
"@angular/forms": "^8.1.2",
"@angular/http": "^7.2.15",
"@angular/platform-browser": "^8.1.2",
"@angular/platform-browser-dynamic": "^8.1.2",
"@angular/platform-server": "^8.1.2",
"@angular/router": "^8.1.2",
"@types/chart.js": "^2.7.54",
"buffer": "^5.2.1",
"chart.js": "^2.7.2",
"core-js": "^2.5.7",
"events": "^3.0.0",
"fs": "0.0.1-security",
"jasmine": "^3.1.0",
"ng2-charts": "^1.6.0",
"ng2-dragula": "^2.1.1",
"ng2-pdf-viewer": "^5.0.1",
"node-sass": "^4.11.0",
"oidc-client": "^1.5.1",
"path": "^0.12.7",
"pdfjs-dist": "^2.0.489",
"rxjs": "^6.5.2",
"rxjs-compat": "^6.5.2",
"stream": "0.0.2",
"timers": "^0.1.1",
"web-animations-js": "^2.3.1",
"zone.js": "^0.9.1"
},
"devDependencies": {
"@angular-devkit/build-angular": "^0.801.2",
"@angular/cli": "^8.1.2",
"@angular/compiler-cli": "^8.1.2",
"@angular/language-service": "^8.1.2",
"@angularclass/hmr": "^2.1.3",
"@compodoc/compodoc": "^1.1.10",
"@types/jasmine": "^3.3.14",
"@types/node": "^12.6.8",
"chai": "^4.1.2",
"codelyzer": "^5.1.0",
"convert-csv-to-json": "0.0.13",
"cucumber": "^4.2.1",
"cucumber-html-reporter": "^5.0.0",
"cucumber-junit": "^1.7.1",
"express-static": "^1.2.5",
"jasmine-core": "^3.4.0",
"jasmine-reporters": "^2.3.1",
"jasmine-spec-reporter": "^4.2.1",
"karma": "^4.2.0",
"karma-chrome-launcher": "^3.0.0",
"karma-cli": "^2.0.0",
"karma-coverage-istanbul-reporter": "^1.2.1",
"karma-html-reporter": "^0.2.7",
"karma-jasmine": "^2.0.1",
"karma-jasmine-html-reporter": "^1.4.2",
"karma-junit-reporter": "^1.2.0",
"karma-teamcity-reporter": "^1.1.0",
"moment": "^2.22.1",
"prettier": "1.13.4",
"protractor": "^5.4.2",
"protractor-beautiful-reporter": "^1.2.1",
"protractor-cucumber-framework": "^5.0.0",
"puppeteer": "^1.14.0",
"request": "^2.87.0",
"request-promise-native": "^1.0.5",
"ts-node": "^3.3.0",
"tslint": "^5.18.0",
"tslint-angular": "^1.1.2",
"typescript": "3.4.5",
"webpack-bundle-analyzer": "^3.3.2",
"xlsx": "^0.12.13"
},
"browser": {
"fs": false,
"path": false,
"os": false,
"crypto": false,
"stream": false,
"http": false,
"tls": false,
"zlib": false,
"https": false,
"net": false
}
}
我的b tsconfig.json文件如下所示:
{
"compileOnSave": false,
"compilerOptions": {
"outDir": "./dist/out-tsc",
"baseUrl": "src",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2016",
"dom"
]
},
"angularCompilerOptions": {
"enableIvy": false
}
}
但是我仍然遇到这些错误:
ERROR in ./node_modules/resolve/lib/async.js
Module not found: Error: Can't resolve 'fs' in 'C:\Source\nien\vital10-frontend\node_modules\resolve\lib'
ERROR in ./node_modules/resolve/lib/sync.js
Module not found: Error: Can't resolve 'fs' in 'C:\Source\nien\vital10-frontend\node_modules\resolve\lib'
ERROR in ./node_modules/resolve/lib/node-modules-paths.js
Module not found: Error: Can't resolve 'fs' in 'C:\Source\nien\vital10-frontend\node_modules\resolve\lib'
ERROR in ./node_modules/tslint/lib/utils.js
Module not found: Error: Can't resolve 'fs' in 'C:\Source\nien\vital10-frontend\node_modules\tslint\lib'
我找到了一个可能的解决方案,您必须在一些node_modules中进行一些配置。但是我认为这不是一个好的解决方案。因为如果您删除所有导入,然后再次安装这些导入,则您的配置将陷入困境。
谢谢
好的,我删除了
"fs": "0.0.1-security",
我删除了所有包(node_modules)并进行了npm安装。
但是现在我明白了:
(node:13880) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 SIGINT listeners added. Use emitter.setMaxListeners() to increase limit
Binary found at C:\Source\nien\vital10-frontend\node_modules\node-sass\vendor\win32-x64-64\binding.node
Testing binary
Binary is fine
> vital10-frontend@0.55.0 postinstall C:\Source\nien\vital10-frontend
> node patch-webpack.js
internal/modules/cjs/loader.js:638
throw err;
^
Error: Cannot find module 'C:\Source\nien\vital10-frontend\patch-webpack.js'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
at Function.Module._load (internal/modules/cjs/loader.js:562:25)
at Function.Module.runMain (internal/modules/cjs/loader.js:829:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! vital10-frontend@0.55.0 postinstall: `node patch-webpack.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the vital10-frontend@0.55.0 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\nien\AppData\Roaming\npm-cache\_logs\2019-07-23T10_25_46_184Z-debug.log
PS C:\Source\nien\vital10-frontend>
和我的package.json文件现在看起来像这样:
{
"name": "vital10-frontend",
"version": "0.55.0",
"license": "Unlicensed",
"scripts": {
"ng": "ng",
"start": "ng serve",
"hmr": "ng serve --configuration hmr",
"build": "ng build",
"build:prod": "npm run sass:prod && npm run vit10prod",
"build:acc": "npm run sass:prod && npm run vit10acc",
"build:test": "npm run sass:prod && npm run vit10test",
"build:dev": "npm run sass:prod && npm run vit10dev",
"test": "ng test",
"test:cover": "ng test --code-coverage",
"lint": "ng lint",
"e2e": "ng e2e",
"local": "ng serve -c local",
"analyze-bundle": "webpack-bundle-analyzer dist/stats.json",
"postinstall": "node patch-webpack.js",
"sass:watch": "sass --watch sass:src\\assets",
"sass:prod": "sass --update -f --style compressed --sourcemap=none sass:src\\assets",
"vit10dev": "ng build --prod -c vit10dev",
"vit10test": "ng build --prod -c vit10test",
"vit10acc": "ng build --prod -c vit10acc",
"vit10prod": "ng build --prod -c production"
},
"private": true,
"dependencies": {
"@angular/animations": "^8.1.2",
"@angular/cdk": "^7.3.7",
"@angular/common": "^8.1.2",
"@angular/compiler": "^8.1.2",
"@angular/core": "^8.1.2",
"@angular/forms": "^8.1.2",
"@angular/http": "^7.2.15",
"@angular/platform-browser": "^8.1.2",
"@angular/platform-browser-dynamic": "^8.1.2",
"@angular/platform-server": "^8.1.2",
"@angular/router": "^8.1.2",
"@types/chart.js": "^2.7.54",
"buffer": "^5.2.1",
"chart.js": "^2.7.2",
"core-js": "^2.5.7",
"events": "^3.0.0",
"jasmine": "^3.1.0",
"ng2-charts": "^1.6.0",
"ng2-dragula": "^2.1.1",
"ng2-pdf-viewer": "^5.0.1",
"node-sass": "^4.11.0",
"oidc-client": "^1.5.1",
"path": "^0.12.7",
"pdfjs-dist": "^2.0.489",
"rxjs": "^6.5.2",
"rxjs-compat": "^6.5.2",
"stream": "0.0.2",
"timers": "^0.1.1",
"web-animations-js": "^2.3.1",
"zone.js": "^0.9.1"
},
"devDependencies": {
"@angular-devkit/build-angular": "^0.801.2",
"@angular/cli": "^8.1.2",
"@angular/compiler-cli": "^8.1.2",
"@angular/language-service": "^8.1.2",
"@angularclass/hmr": "^2.1.3",
"@compodoc/compodoc": "^1.1.10",
"@types/jasmine": "^3.3.14",
"@types/node": "^12.6.8",
"chai": "^4.1.2",
"codelyzer": "^5.1.0",
"convert-csv-to-json": "0.0.13",
"cucumber": "^4.2.1",
"cucumber-html-reporter": "^5.0.0",
"cucumber-junit": "^1.7.1",
"express-static": "^1.2.5",
"jasmine-core": "^3.4.0",
"jasmine-reporters": "^2.3.1",
"jasmine-spec-reporter": "^4.2.1",
"karma": "^4.2.0",
"karma-chrome-launcher": "^3.0.0",
"karma-cli": "^2.0.0",
"karma-coverage-istanbul-reporter": "^1.2.1",
"karma-html-reporter": "^0.2.7",
"karma-jasmine": "^2.0.1",
"karma-jasmine-html-reporter": "^1.4.2",
"karma-junit-reporter": "^1.2.0",
"karma-teamcity-reporter": "^1.1.0",
"moment": "^2.22.1",
"prettier": "1.13.4",
"protractor": "^5.4.2",
"protractor-beautiful-reporter": "^1.2.1",
"protractor-cucumber-framework": "^5.0.0",
"puppeteer": "^1.14.0",
"request": "^2.87.0",
"request-promise-native": "^1.0.5",
"ts-node": "^3.3.0",
"tslint": "^5.18.0",
"tslint-angular": "^1.1.2",
"typescript": "3.4.5",
"webpack-bundle-analyzer": "^3.3.2",
"xlsx": "^0.12.13"
},
"browser": {
"fs": false,
"path": false,
"os": false,
"crypto": false,
"stream": false,
"http": false,
"tls": false,
"zlib": false,
"https": false,
"net": false
}
}
仍然得到这个错误:
(node:15956) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 SIGINT listeners added. Use emitter.setMaxListeners() to increase limit
internal/modules/cjs/loader.js:638
throw err;
^
Error: Cannot find module 'C:\Source\nien\vital10-frontend\patch-webpack.js'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
at Function.Module._load (internal/modules/cjs/loader.js:562:25)
at Function.Module.runMain (internal/modules/cjs/loader.js:829:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! vital10-frontend@0.55.0 postinstall: `node patch-webpack.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the vital10-frontend@0.55.0 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\nien\AppData\Roaming\npm-cache\_logs\2019-07-23T10_59_04_891Z-debug.log
PS C:\Source\nien\vital10-frontend>
我仍然得到这三个错误:
ERROR in ./node_modules/resolve/lib/async.js
Module not found: Error: Can't resolve 'fs' in 'C:\Source\nien\vital10-frontend\node_modules\resolve\lib'
ERROR in ./node_modules/resolve/lib/sync.js
Module not found: Error: Can't resolve 'fs' in 'C:\Source\nien\vital10-frontend\node_modules\resolve\lib'
ERROR in ./node_modules/tslint/lib/utils.js
Module not found: Error: Can't resolve 'fs' in 'C:\Source\nien\vital10-frontend\node_modules\tslint\lib'
i 「wdm」: Failed to compile.
答案 0 :(得分:25)
该错误是由于angular-cli
不支持节点中的模块,例如“ fs”和“ path”。 (issue)
将以下内容添加到“ packages.json”文件中。
"browser": { "fs": false, "path": false, "os": false}
我希望这对某人有帮助。
谢谢。
答案 1 :(得分:19)
对我来说,解决方案是将其添加到 webpack 配置中:
config.node = {
fs: 'empty',
}
如果你使用 NuxtJS 的另一种解决方案:
// Build Configuration: https://go.nuxtjs.dev/config-build
build: {
extend(config, {}) {
config.node = {
fs: 'empty'
}
}
},
如果您使用 NextJS(未测试,请在评论中确认它有效):
webpack: (config, { buildId, dev, isServer, defaultLoaders, webpack }) => {
config.node = {
fs: 'empty'
}
return config
},
在其他情况下,请参阅 Anjana Silva 的帖子。编辑您的 package.json 文件即可完成这项工作!
答案 2 :(得分:11)
对于Webpack > 5
更新webpack.config.js
module.exports = {
...
resolve: {
fallback: {
"fs": false
},
}
}
答案 3 :(得分:4)
只需将{node:'empty'}添加到您的webpack.config文件中
答案 4 :(得分:2)
我遇到了同样的错误,但这是由于我的错误,因为我使用 axios 进行网络请求,但是在我的应用程序中的某个点我输入了重定向并按了 Enter 并且我的代码完成导入了 'import {重定向}来自“next/dist/next-server/server/api-utils”;' 删除这一行让我可以继续“下一个构建”。
答案 5 :(得分:1)
我正在使用 Nuxt.JS 对我有用的是使用@thisismyname 解决方案,并将其添加到 nuxt.config.js,如下所示:
// Build Configuration: https://go.nuxtjs.dev/config-build
build: {
extend(config, {}) {
config.node = {
fs: 'empty'
}
}
},
答案 6 :(得分:0)
您可以尝试这些步骤吗?
答案 7 :(得分:0)
对于转译 Node.js 的人:将 target: node
添加到 webpack.config.js
文件中。
我知道这是一个 Angular 问题,但是那些为 Node.js 转译的人必须记住,默认情况下,Webpack 为浏览器目标转译,您没有仅由 Node.js 提供的模块。如果您将运行转译代码的环境确实是 Node.js,那么只需在配置文件中用 target: node
标记它。