找不到角模块:错误:无法解析“ fs”“路径”

时间:2019-11-20 12:37:58

标签: angular typescript ecmascript-6 import export

我想在我的Angular应用程序中使用opusscript

启动应用程序时出现以下错误

ERROR in ./node_modules/opusscript/build/opusscript_native_wasm.js
Module not found: Error: Can't resolve 'fs' in 'D:\DriveCode\UserPortal\node_modules\opusscript\build'
ERROR in ./node_modules/opusscript/build/opusscript_native_nasm.js
Module not found: Error: Can't resolve 'fs' in 'D:\DriveCode\UserPortal\node_modules\opusscript\build'
ERROR in ./node_modules/opusscript/build/opusscript_native_wasm.js
Module not found: Error: Can't resolve 'path' in 'D:\DriveCode\UserPortal\node_modules\opusscript\build'
ERROR in ./node_modules/opusscript/build/opusscript_native_nasm.js
Module not found: Error: Can't resolve 'path' in 'D:\DriveCode\UserPortal\node_modules\opusscript\build'

我以前执行过以下命令:

npm i opusscript
npm i @types/node

在组件ts中,我导入为:

import OpusScript = require('opusscript');

我的tsconfig.json是:

{
  "compileOnSave": false,
  "preserveWhitespaces": false,
  "compilerOptions": {
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "downlevelIteration": true,
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2017",
      "dom"
    ]
  }
}

我的tsconfig.app.json是:

{
  "extends": "../tsconfig.json",
  "compilerOptions": {
    "outDir": "../out-tsc/app",
    "baseUrl": "./",
    "module": "commonjs",
    "types": ["node"]
  },
  "exclude": [
    "test.ts",
    "**/*.spec.ts"
  ]
}

opusscript库中的index.d.ts具有:

class OpusScript {
   ...
}
export = OpusScript;

我在这里错过了什么?

1 个答案:

答案 0 :(得分:0)

这是一个node.js库,不能被Angular或任何其他Web框架使用。

您最好的选择是使用node.js服务器上的库并通过API公开它。基本上,Angular在浏览器中运行,而不是在服务器(在一台机器上)中运行。因此,无法访问文件系统,而节点js应用程序可以访问该文件系统。

运行oppusscript所需的节点模块是this: FS module。通过导入fs模块也无法使用opusscript js库,因为出于安全原因,您将无法从浏览器访问文件。 (js是孤立的,无法访问文件系统或执行应用程序。)