首页 > 解决方案 > 包含 require() 语句的外部 JavaScript 库无法加载到 Angular 8 应用程序中

问题描述

我在我的 Angular 8 应用程序中使用了一个外部 javascript 库,首先包含一个 require 语句。

require('dependency')

但是,我在angular.json脚本部分中包含了依赖项和其他库。

问题是 require-method 没有被调用或未知:

someLibrary.js:1 Uncaught ReferenceError: require is not defined

那么如何在 Angular.js 的上下文中解决这个问题。

这也是我的编译器选项:

 "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "module": "commonjs", // <-- value: "es2015" also not solves the issue
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "importHelpers": true,
    "target": "es2015",
    "typeRoots": ["node_modules/@types"],
    "lib": ["es2018", "dom"]
  }

有谁知道如何解决这一问题?这是否与这里有关:https ://stackoverflow.com/a/950146/4457758

标签: javascriptangularangular-cliangular8

解决方案


我通过在我想要加载到浏览器中的 JS 文件上使用browserify解决了这个问题。请务必使用 --s 命令,以便您可以全局公开您的 js,以便您的 Angular 应用程序可以与其交互。

例如,您可能会执行以下操作:

browserify dependency.js --s myDependency

推荐阅读