【问题标题】:External JavaScript Library containing require()-statement failed to load into angular 8 app包含 require() 语句的外部 JavaScript 库无法加载到 Angular 8 应用程序中
【发布时间】:2020-01-14 11:14:46
【问题描述】:

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

require('dependency')

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

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

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

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

这也是我的编译器选项:

 "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

【问题讨论】:

  • 这是自定义模块还是 npm 依赖?
  • 是的,我已经安装了两个纯 js-modules/libs,一个是必需的,另一个是通过 npm install 包含 require 语句的 ...
  • 导入 javascript 库并导出函数或类而不是模块或对象是某些场景的问题
  • @ArgV,请参阅此链接了解更多详细信息-stackoverflow.com/questions/37651495/…
  • 您是在 Angular 应用程序的 TypeScript 源代码中调用 require('dependency') 吗?

标签: javascript angular angular-cli angular8


【解决方案1】:

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

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

browserify dependency.js --s myDependency

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-17
    • 1970-01-01
    • 2013-11-28
    • 2022-01-22
    • 1970-01-01
    • 2015-04-12
    • 2018-01-05
    • 1970-01-01
    相关资源
    最近更新 更多