Angular 6:编译失败:无法解决' stream'在./node_modules/hash-base中

时间:2018-05-17 08:33:15

标签: angular typescript webpack angular6

我向Angular 6更新了三个Angular 5应用程序,但最后一个给了我麻烦。 每当我尝试编译(serve / build,jit / aot,dev / prod)时,我都会犯这样的错误:

ERROR in ./node_modules/hash-base/index.js
Module not found: Error: Can't resolve 'stream' in '[...]/node_modules/hash-base'
ℹ 「wdm」: Failed to compile.

hash-base似乎是一个webpack依赖:

@eagle5/editor-app@0.2.6
└─┬ @angular-devkit/build-angular@0.6.1
  └─┬ webpack@4.6.0
    └─┬ node-libs-browser@2.1.0
      └─┬ crypto-browserify@3.12.0
        └─┬ create-hash@1.2.0
          ├─┬ md5.js@1.3.4
          │ └── hash-base@3.0.4 
          └─┬ ripemd160@2.0.2
            └── hash-base@3.0.4  deduped

这个应用程序的一些特色是我在app文件夹旁边的./src中有一个框架,我安装了一个git存储库作为npm包,并在我的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": [
      "es2017",
      "dom"
    ],
    "paths": {
      "@nettrek/*": [
        "./@nettrek/*"
      ]
    }
  },
  "include": [
    "./src/**/*",
    "./node_modules/@eagle5/player-core/dto/**/*"
  ],
  "angularCompilerOptions": {
    "preserveWhitespaces": false
  }
}

我尝试安装this stream npm包,但此版本没有hash-base使用的stream.Transform扩展。

我尝试了节点8.11.1和10.1.0

2 个答案:

答案 0 :(得分:1)

好的,我找到了错误的原因。我们在自己的一个类中使用了md5.js,忘记将它放在我们的package.json中,因为它已经安装好了。 Md5.js当然需要浏览器中的节点垫片,角度6不再支持。

答案 1 :(得分:0)

尝试将“流”添加到您的项目中

npm install stream --save