如何修复在Angular 4中出现的“找不到模块'typescript'”错误?

86

我使用 @angular/cli 生成了一个 Angular 4 应用程序,距今已经3周了。2周后,我尝试使用命令行 ng serve 运行它,但是出现了以下错误提示:

Cannot find module 'typescript'
Error: Cannot find module 'typescript'
    at Function.Module._resolveFilename (module.js:469:15)
    at Function.Module._load (module.js:417:25)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (C:\Users\mypc\Documents\Angular Projects\my-angular-app\node_modules\@angular\cli\models\config\config.js:5:12)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)

你有没有想法如何修复这个问题?谢谢。


4
你是否全局安装了 TypeScript - Aravind
将其全局安装并设置路径在环境变量中。 - Aravind
我刚刚全局安装了它。你有更具体的设置环境变量路径的指南吗? - redshot
你能在TeamViewer上面吗? - Aravind
抱歉,我目前没有TeamViewer。 - redshot
显示剩余4条评论
13个回答

150

对我来说,仅仅运行下面的命令是不够的(虽然是一个有效的第一步):

npm install -g typescript

你需要以下命令(我认为删除node_modules也可以,但下面的命令更快)

npm link typescript

4
npm link typescript 也适用于我的 Node.js 项目。谢谢。 - ChinaHelloWorld
5
如果我能给你14个赞,我就会这样做。这个对我很有帮助。在 Node.js 更新后,所有东西都出问题了。 - wildbagel
1
有人知道为什么这在安装过程中不会发生吗? - techsaint
我使用“npm install -g typescript”安装了它,然后使用此命令更新typescript:“npm install -g npm”。但是,我的问题到目前为止还没有解决。 - Arash Yazdani
我已经安装了TypeScript,所以我只需要运行 npm link typescript 就可以了。 - Aosu Terver

84

这应该就行了,

npm install -g typescript

3
嗨 @Sajeetharan,我已经使用你上面的命令在全局安装了它。再次运行 "ng serve" 后,我仍然收到以下提示:找不到模块 'typescript' 错误:找不到模块 'typescript' - redshot
1
尝试全局卸载angular-cli,运行npm cache clean并重新安装。 - Sajeetharan
我已经通过 "npm install -g @angular/cli" 全局安装了 Angular。 - redshot
2
每次我没有全局安装 TypeScript 时,这个答案都能解决我的问题。 - skiabox
但这并不是真正的解决方案。您应该通过运行以下命令将全局包链接到本地包中的 node_modulenpm link typescript - MoHo
显示剩余2条评论

49

我通过删除 node_modules 然后运行 npm install 来解决了这个问题。


1
不错。当我已经尝试了上面的解决方案时,这个对我有用。我正在使用一些来自一个稍微旧一点的教程的项目文件来修补一个本地项目。它有点出了问题,但是删除 node_modules 并运行 npm install 就可以解决所有问题。 - Tezza
也许你可以使用 npm ci 而不是 npm install - NsdHSO

11
如果您没有特殊需求,我建议在本地安装TypeScript。
NPM安装方法
npm install --global typescript # Global installation
npm install --save-dev typescript # Local installation

Yarn安装方法

全局安装

yarn global add typescript

本地安装

yarn add --dev typescript

9

当我重新排列项目的文件夹结构时,遇到了类似的问题。我尝试了这个线程中提供的所有提示,但都没有起作用。

经过进一步检查,我发现我忘记将一个重要的隐藏文件复制到新目录中了。那就是来自@angular/cli项目根目录的

.angular-cli.json

复制该文件后,一切都按预期运行。


3

如果您已全局安装 TypeScript,则运行:npm link typescript

但如果您尚未安装 TypeScript,请尝试运行此命令:npm install typescript


2

如果你使用yarn而不是npm,你可以通过运行以下命令为该工作区安装typescript包:

yarn add typescript

或者您可以通过运行以下命令在全局安装它:

sudo yarn global add typescript

可用于任何项目。


1
运行 'npm install' 命令,它将安装所有必需的软件包。

修好了。 - Daniel Methner

1
我也遇到了同样的问题。如果你先使用apt安装了nodejs,然后又使用了来自nodejs.org的tar.gz文件,那么你需要删除位于/usr/lib/node_modules的文件夹。

1
我在将一个正常工作的项目移动到文件系统中的一个新子目录后遇到了非常相似的问题。结果发现,我没有将名为.angular-cli.json的文件与其他所有文件一起移动到子文件夹中。注意到这一点并将该文件移动到子目录中后,一切恢复正常。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接