【问题标题】:Angular 2.0.0-beta.15 & webpack: "Cannot find the name 'require'."Angular 2.0.0-beta.15 & webpack:“找不到名称‘require’。”
【发布时间】:2019-04-03 21:59:41
【问题描述】:

我最近将基于 webpack 的 Angular 2 应用程序从 2.0.0-beta.2 升级到了 2.0.0-beta.15。我在编译时收到了很多错误,其中很多都通过添加以下行解决了:

/// <reference path="../node_modules/angular2/typings/browser.d.ts" />

到我的引导文件。但是,我仍然收到很多与 require 相关的错误:

error TS2304: Cannot find name 'require'.

TypeScript 加载器使用的是 1.8.10 版本的编译器,我的 tsconfig.json 看起来像这样:

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "removeComments": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "noEmitHelpers": false,
    "sourceMap": true,
    "moduleResolution": "node"
  },
  "filesGlob": [
    "./app/**/*.ts",
    "!./node_modules/**/*.ts"
  ],
  "compileOnSave": false,
  "buildOnSave": false
}

我还需要做什么才能使其正常工作?这对我来说是一个真正的拦截器!

【问题讨论】:

  • 你是如何使用require的? import myModule = require('myModule')?

标签: angular typescript webpack


【解决方案1】:

创建像declarations.d.ts这样的定义文件,内容如下:

//fix error TS2304: Cannot find name 'require':
declare function require(string:string):any;

并添加对main.ts/boot.ts的引用:

/// <reference path="./typings/declarations.d.ts" />

【讨论】:

    【解决方案2】:

    您应该使用typings 等工具为您的模块添加类型定义。

    全局安装:

    npm i -g typings
    

    为它创建一个配置:

    typings init
    

    有一个使用 require 的类型定义。

    typings install require --ambient --save
    

    请注意,typings 将为 main 和浏览器添加类型定义,请对 tsconfig.json 文件进行更改以仅包含浏览器版本。

    "filesGlob": [
        "./app/**/*.ts",
        "!./node_modules/**/*.ts",
        "!./typings/main",
        "!./typings/main.d.ts"
      ],
    

    【讨论】:

    • 谢谢,我喜欢这个解决方案的外观。我现在是否必须在我的应用程序 .ts 文件中引用这些 .ts 文件之一?如果是这样,为什么与以前的版本相比有所变化?以前从来没有这样做过。
    • 解决了一个问题,谢谢;但现在我有一些不相关的东西。
    • 如果你使用 Typescript 2.x:使用 npm install --save-dev @types/nodenpm install --save-dev @types/requirejs 而不是安装类型模块
    猜你喜欢
    • 2017-09-14
    • 1970-01-01
    • 2019-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 2017-09-07
    • 2016-09-14
    相关资源
    最近更新 更多