在angular2 package.json中的Object.parse(native)处出现意外的标记

时间:2016-02-18 10:17:56

标签: angular package.json

我在启动风帆应用时遇到了来自angular2模块的错误:

[0] error: SyntaxError: /node_modules/angular2/ts/package.json: Unexpected token <
[0]     at Object.parse (native)
[0]     at Object.Module._extensions..json (module.js:412:27)
[0]     at Module.load (module.js:343:32)
[0]     at Function.Module._load (module.js:300:12)
[0]     at Module.require (module.js:353:17)
[0]     at require (internal/module.js:12:17)
[0]     at node_modules/include-all/index.js:129:29
[0]     at Array.forEach (native)
[0]     at requireAll (/node_modules/include-all/index.js:44:9)
[0]     at /node_modules/include-all/index.js:54:23 [SyntaxError: /node_modules/angular2/ts/package.json: Unexpected token <]

错误似乎来自这个package.json:

{
  "name": "angular2",
  "version": "<%= packageJson.version %>",
  "description": "Angular 2 - a web framework for modern web apps",
  "homepage": "<%= packageJson.homepage %>",
  "bugs": "<%= packageJson.bugs %>",
  "contributors": <%= JSON.stringify(packageJson.contributors) %>,
  "license": "<%= packageJson.license %>",
  "repository": <%= JSON.stringify(packageJson.repository) %>,
  "devDependencies": <%= JSON.stringify(packageJson.defaultDevDependencies) %>,
  "peerDependencies": {
      "es6-promise": "<%= packageJson.dependencies['es6-promise'] %>",
      "es6-shim": "<%= packageJson.dependencies['es6-shim'] %>",
      "reflect-metadata": "<%= packageJson.dependencies['reflect-metadata'] %>",
      "rxjs": "<%= packageJson.dependencies['rxjs'] %>",
      "zone.js": "<%= packageJson.dependencies['zone.js'] %>"
  }
}

通过在贡献者,devDependencies和存储库属性周围添加双引号,我不再有错误,但我想它不是更新node_modules / angular2中的文件的解决方案。

每个人都知道如何解决这个问题吗?谢谢你的帮助:)

1 个答案:

答案 0 :(得分:0)

实际上,在启动应用程序的Angular2部分时,不应使用此文件。 <%= ... %>元素是需要预处理的元素,因为它不是有效的JSON。

它认为应该使用此页面中描述的package.json文件而不是https://angular.io/guide/quickstart而不是您从Angular2存储库(https://github.com/angular/angular/blob/master/modules/angular2/package.json)中提到的文件。后者适用于内部项目,不适用于基于Angular2的应用程序...