【问题标题】:Angular Module not found: Error: Can't resolve 'fs' 'path'找不到角度模块:错误:无法解析“fs”“路径”
【发布时间】:2020-03-16 04:23:12
【问题描述】:

我想在我的 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;

我在这里错过了什么?

【问题讨论】:

    标签: angular typescript ecmascript-6 import export


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢。为什么作者在示例中提到了打字稿?
    • Typescript 不是 Angular 独有的。它被转译为 javascript。查看blog.risingstack.com/… 了解如何将 typescript 与 node.js 一起使用
    猜你喜欢
    • 1970-01-01
    • 2018-06-29
    • 2019-12-01
    • 2018-10-28
    • 2019-05-31
    • 2017-04-18
    • 1970-01-01
    • 2020-02-24
    相关资源
    最近更新 更多