2016-02-26 178 views
9

分型,我有以下packages.json:NPM安装后不能正常工作

{ 
"name": "shopping-assistant-angular", 
"version": "1.0.0", 
"scripts": { 
    "start": "concurrent \"npm run tsc:w\" \"npm run lite\" ",  
    "tsc": "tsc", 
    "tsc:w": "tsc -w", 
    "lite": "lite-server", 
    "typings": "typings", 
    "postinstall": "typings install" 
}, 
"license": "ISC", 
"dependencies": { 
    "angular2": "2.0.0-beta.7", 
    "systemjs": "0.19.23", 
    "es6-promise": "^3.0.2", 
    "es6-shim": "^0.33.3", 
    "reflect-metadata": "0.1.2", 
    "rxjs": "5.0.0-beta.2", 
    "zone.js": "0.5.14" 
}, 
"devDependencies": { 
    "bower": "^1.7.7", 
    "concurrently": "^1.0.0", 
    "grunt": "^0.4.5", 
    "grunt-chrome-manifest": "^0.3.0", 
    "grunt-contrib-clean": "^1.0.0", 
    "grunt-contrib-concat": "^0.5.1", 
    "grunt-contrib-copy": "^0.8.2", 
    "grunt-contrib-cssmin": "^0.14.0", 
    "grunt-contrib-htmlmin": "^0.6.0", 
    "grunt-contrib-uglify": "^0.11.1", 
    "grunt-filerev": "^2.3.1", 
    "grunt-ts": "^5.3.2", 
    "grunt-usemin": "^3.1.1", 
    "lite-server": "^2.0.1", 
    "load-grunt-tasks": "^3.4.0", 
    "typescript": "1.7.5", 
    "typings": "^0.6.8" 
} 
} 

当我运行NPM在我的目录中安装我得到一个错误:'typings' is not recognized as an internal or external command, operable program or batch file.

在角2单触他们使用以下packages.json开始指南:

{ 
"name": "angular2-quickstart", 
"version": "1.0.0", 
"scripts": { 
    "start": "concurrent \"npm run tsc:w\" \"npm run lite\" ",  
    "tsc": "tsc", 
    "tsc:w": "tsc -w", 
    "lite": "lite-server", 
    "typings": "typings", 
    "postinstall": "typings install" 
}, 
"license": "ISC", 
"dependencies": { 
    "angular2": "2.0.0-beta.7", 
    "systemjs": "0.19.22", 
    "es6-promise": "^3.0.2", 
    "es6-shim": "^0.33.3", 
    "reflect-metadata": "0.1.2", 
    "rxjs": "5.0.0-beta.2", 
    "zone.js": "0.5.15" 
}, 
"devDependencies": { 
    "concurrently": "^2.0.0", 
    "lite-server": "^2.1.0", 
    "typescript": "^1.7.5", 
    "typings":"^0.6.8" 
} 
} 

在所有软件包完成安装后,它成功运行“typings install”。

不知道为什么运行这些非常相似的packages.json文件导致完全不同的结果。

回答

25

Gabe O'Leary是正确的(见comment),第一次尝试,如果你使用的是Mac,你可能需要使用sudo命令sudo npm install typings -g

+0

我应该回答我自己的问题。感谢这 –

+1

感谢您的建议。哇,这真是蹩脚... – Den

+0

谢谢!这对我有效 –

2

我正面临同样的问题。您需要在您的项目文件夹中添加typings.json文件。请检查此链接:https://angular.io/guide/quickstart

+4

我确实在我的文件夹中有一个typings.json文件,这是我没有安装类型全局'npm install typings -g'修复了我的问题 –

+0

总是检查文件名...我不小心命名了我的打字.json而不是typings.json。这有帮助! – Quinma

+0

您引用的链接甚至没有提及“typings”....! –

0

哦EM啧啧安装分型全球 npm install typings -g。这个工具太脆弱了!

PowerShell -> 
    OS %PATH% spec -> 
    Node.js bin folder (which one?) -> 
     typings.cmd -> 
     Tools : Options : Projects and Solutions : External Web Tools -> 
      node.js bin -> 
      Typings JavaScript files -> 
       PowerShell working directory (vs. project path) -> 
       typings.json configuration -> 

注意,npm install typings -g意味着是一个“全球性的”安装,因此,即使你希望它是一个单一的项目的一部分(例如,你希望能够检查,并建立一个单一的项目) , 太糟糕了!您必须使用解决方案范围内的文件检出解决方案才能获取项目工具链。

请注意,默认的Typings安装会修改Node.js二进制文件夹。因此,如果您有多个Node.js安装(您可能至少安装了三个,其中一个安装有VS update 2,至少一个安装使用NuGet,一个或多个安装为单独的Node.js安装以克服旧版本中的缺陷可从其他两个来源获得),你的痛苦已经开始。

此外,一些开发团队通过各种MS支持文章修改了他们的External Web Tools目录以解决此问题,并且您的团队的一些成员安装了不同的Node.js版本等等。现在您的痛苦是变得真实...

那么,有什么解决方案?我个人而言,我将在我的gulp.js“项目启动时运行”事件中插入“typings install”,并将其设置为针对项目特定的“类型”包。现在,我们可以检出并构建一个项目,团队中的任何人都不需要能够在命令行或程序包管理器控制台上运行“类型安装”,但负责维护它的人员除外。

这些路径也可能对您有所帮助。在机器我做了最该诊断上的升级过程中的不同点,npm install typings -g放在typings.cmd文件在不同的目录:

  • %SolutionFolder%\包\ Node.js.5.3.0 \ typings.cmd
  • C:\ Users \%username%\ AppData \ Roaming \ npm \ typings.cmd
0

您应该不需要在全局安装类型以使上述设置生效。运行npm install时,应该在/node_modules/.bin/typings处添加到typings二进制文件的符号链接,并且应该在添加到PATH环境变量的/node_modules/.bin后运行后安装脚本。

看你的设置,不过,如果你是用npm install --production(或设置为productionNODE_ENV环境变量),分型就无法安装,因为它是在devDependencies,所以你会再拿到错误安装。这可能是你的问题的真正原因。看看this question,看看如何解决这个问题的一些建议。

+0

angular.io教程实际上提到了运行npm install typings -g,但由于它们设置了新的package.json文件,现在不再需要它了。 –

+0

你能找出为什么其中一个package.json的工作,其他没有? 如果你的'NODE_ENV'环境变量设置为'production',你也可以导致'--production'类型的构建。 (我已经编辑了我的答案) – rjmunro

0

我倾向于有嵌套角度1级角度2的解决方案,我最终存储在GIT中回购...

当我去运行该命令用于键入没有显示出来

npm run typings install 

即不工作。然后我发现这个计算器页面,并试图

npm install typings -g 

对我来说,问题是,在一个工作,我继承了.typingsrc文件中,即使它的文件夹中不是说我是跑npm install等。在,它一定已经决定看一个目录或2以上,因此也难怪我得到了错误。

我只需将其重命名为old.typingsrc,为宗旨里面是绕过代理proxy="http://proxy-chain.company.com:911"

这可能不是帮助很多人,但我觉得它可以帮助别人那些仅具有代理

0

离子2,我面临着同样的问题上车窗,然后我试图 npm install typings -g, 安装我试图分型命令后,哇,它的工作,我 用离子2 socket.io工作,我需要运行
typings install dt~socket.io-client --save --global, 现在它工作。

希望这会帮助你。

+0

你好,请添加一些格式的代码。请参阅https://stackoverflow.com/help/formatting获取更多信息。 – Chaithanya