ng2-material:错误 TS2304:找不到名称“进程”

Posted

技术标签:

【中文标题】ng2-material:错误 TS2304:找不到名称“进程”【英文标题】:ng2-material: error TS2304: Cannot find name 'process' 【发布时间】:2016-09-18 20:57:37 【问题描述】:

我的项目更新到Justin DuJardin's ng2-material版本0.3.8(基于Angular2.0.0-beta.14)后,编译失败,出现以下错误:

Using tsc v1.8.0
ng2-material/core/util/viewport.ts(62,12): error TS2304: Cannot find name 'process'.
ng2-material/webpack_all.ts(1,1): error TS2304: Cannot find name 'module'.
ng2-material/webpack_all.ts(1,18): error TS2304: Cannot find name 'require'.
ng2-material/webpack_all.ts(2,1): error TS2304: Cannot find name 'require'.
ng2-material/webpack_all.ts(3,1): error TS2304: Cannot find name 'require'.
ng2-material/webpack_styles.ts(1,1): error TS2304: Cannot find name 'require'.
ng2-material/webpack_styles.ts(2,1): error TS2304: Cannot find name 'require'.

>> 7 non-emit-preventing type warnings  
>> Error: tsc return code: 2
Warning: Task "ts:source" failed. Use --force to continue.

安装typings并不能解决编译问题:

npm install typings --save-dev --global
typings install --save --ambient

而不是安抚 TS 编译器,如对类似 SO 问题的几个答案中所述,例如,typescript getting error TS2304: cannot find name ' require' 和 TypeScript and ng2 rc.1 getting Error:(20, 15) TS2304: Cannot find name 'module',我宁愿找到根本问题并得到真正的解决方案,如果有的话一个。

我的TS配置如下:

tsd.json


  "version": "v4",
  "repo": "borisyankov/DefinitelyTyped",
  "ref": "master",
  "path": "typings",
  "bundle": "typings/tsd.d.ts",
  "installed": 
    "node/node.d.ts": 
      "commit": "e0abafb1a6ff652f7ff967120e312d5c1916eaef"
    ,
    "requirejs/require.d.ts": 
      "commit": "e0abafb1a6ff652f7ff967120e312d5c1916eaef"
    ,
    "jasmine/jasmine.d.ts": 
      "commit": "e0abafb1a6ff652f7ff967120e312d5c1916eaef"
    
  

tsconfig.json

"files": [
    "node_modules/angular2/typings/browser.d.ts",
    "dist/ng2-material.d.ts",
    "ng2-material/all.ts",
    "ng2-material/components/backdrop/backdrop.ts",
    "ng2-material/components/button/button.ts",
    ...

有什么想法可以找到这个问题的根本原因并解决它吗?

【问题讨论】:

【参考方案1】:

遗憾的是,我发现的唯一“解决方案”是前向声明解决方法:

declare function require(path: string) : any;

我添加到我的应用程序引导 TS 文件中。

【讨论】:

以上是关于ng2-material:错误 TS2304:找不到名称“进程”的主要内容,如果未能解决你的问题,请参考以下文章

打字稿错误 TS2304:即使使用 esnext 也找不到名称 AsyncIterator

TS-2304 错误 - 在“.ts”文件中导入“jquery”时在 TypeScript 中找不到名称“Iterable”

错误 TS2304:找不到名称“发电机”

src/polyfills.ts(73,1) 中出现错误时的 web-pack 错误:错误 TS2304:找不到名称“全局”。 [ng] src/polyfills.ts(73,17):

嚎叫:角度错误 TS2304:找不到名称“嚎叫”[重复]

TypeScript 和 ng2 rc.1 出现错误:(20、15)TS2304:找不到名称“模块”