angular2 i18n无法读取属性'创建'未定义的

时间:2016-12-28 12:53:14

标签: angular internationalization package.json

我正在使用angular2 我使用this project开始申请。

this documentation

之后实施多语言支持

步骤: 1)执行命令

npm install @angular/compiler-cli @angular/platform-server --save

输出:

  

+ - UNMET PEER DEPENDENCY rxjs@5.0.0-rc.5`- UNMET PEER DEPENDENCY tslint@4.0.2

     

npm WARN可选SKIPPING OPTIONAL DEPENDENCY:fsevents@^1.0.0   (node_modules \ chokidar \ node_modules \ fsevents):npm WARN notsup   跳过可选的依赖性:不支持的平台   fsevents@1.0.15:想要{" os":" darwin"," arch" :"任何"}(当前:   {" os":" win32"," arch":" x64"})npm WARN @ angular / core @ 2.1.1需要一个   同行rxjs@5.0.0-beta.12但没有安装。警告   @ angular / forms @ 2.2.4需要@ angular / core @ 2.2.4的对等,但没有   安装。 npm WARN @ angular / forms @ 2.2.4需要一个对等的   @ angular / common @ 2.2.4但没有安装。警告   @ angular / http @ 2.1.1需要rxjs@5.0.0-beta.12的同行,但没有   安装。 npm WARN @ angular / router @ 3.1.1需要一个对等体   rxjs@5.0.0-beta.12但没有安装。警告   codelyzer@1.0.0-beta.4需要tslint @^3.9.0的同行,但没有   安装。 npm WARN codelyzer@1.0.0-beta.4需要同行   @ angular / compiler @~2.2.0但没有安装。警告   codelyzer@1.0.0-beta.4需要@ angular / core @~2.2.0的同伴但是   没有安装。 npm WARN tslint-loader@2.1.5需要同行   tslint@^3.0.0但没有安装。警告   @ angular / compiler-cli @ 2.4.1需要@ angular / compiler @ 2.4.1的对等体   但没有安装。警告@ angular / compiler-cli @ 2.4.1需要   @ angular / core @ 2.4.1的同伴,但没有安装。

2)执行命令" ./ node_modules / .bin / ng-xi18n"  它给我以下错误

  

C:\项目\ TEMP \ PathTrak3 \的PathTrak>" ./ node_modules /的.bin / NG-xi18n"   TypeError:无法读取属性'创建'未定义的       在Function.Extractor.create(C:\ Projects \ temp \ PathTrak3 \ PathTrak \ node_modules \ @angular \ compiler-cli \ src \ extractor   的.js:69:45)       在extract(C:\ Projects \ temp \ PathTrak3 \ PathTrak \ node_modules \ @angular \ compiler-cli \ src \ extract_i18n.js:7:34)       在Object.main(C:\ Projects \ temp \ PathTrak3 \ PathTrak \ node_modules \ @angular \ tsc-wrapped \ src \ main.js:47:16)       在对象。 (C:\项目\ TEMP \ PathTrak3 \的PathTrak \ node_modules \ @angular \编译-CLI \ SRC \ extract_i18n.js:   14:9)       在Module._compile(module.js:570:32)       在Object.Module._extensions..js(module.js:579:10)       在Module.load(module.js:487:32)       在tryModuleLoad(module.js:446:12)       在Function.Module._load(module.js:438:3)       在Module.runMain(module.js:604:10)提取失败

由于此错误,我无法实施i18n。 请在package.json文件中找到以下依赖项

 "dependencies": {
    "@angular/common": "2.1.1",
    "@angular/compiler": "2.1.1",
    "@angular/compiler-cli": "^2.4.1",
    "@angular/core": "2.1.1",
    "@angular/forms": "^2.1.1",
    "@angular/http": "2.1.1",
    "@angular/platform-browser": "2.1.1",
    "@angular/platform-browser-dynamic": "2.1.1",
    "@angular/platform-server": "^2.1.1",
    "@angular/router": "3.1.1",
    "@angularclass/conventions-loader": "^1.0.2",
    "@angularclass/hmr": "~1.2.0",
    "@angularclass/hmr-loader": "~3.0.2",
    "angular2-highcharts": "^0.4.0",
    "assets-webpack-plugin": "^3.4.0",
    "core-js": "^2.4.1",
    "http-server": "^0.9.0",
    "ie-shim": "^0.1.0",
    "rxjs": "^5.0.0-rc.1",
    "zone.js": "~0.6.17"
  }

是否在package.json文件中出现版本问题? 请帮助

谢谢, Sardar Nale

-------------------------------------改性------ --------------

我删除了node_modules文件夹,并尝试按如下方式更新package.json,UNMET dpendancy问题已解决,但在运行时出现错误, 的错误

C:\Projects\temp\PathTrak12\PathTrak>npm start

> angular2-webpack-starter@5.1.1 start C:\Projects\temp\PathTrak12\PathTrak
> npm run server:dev


> angular2-webpack-starter@5.1.1 server:dev C:\Projects\temp\PathTrak12\PathTrak
> webpack-dev-server --config config/webpack.dev.js --progress --profile --watch --content-base src/

keywords if/then/else require v5 option

C:\Projects\temp\PathTrak12\PathTrak\config\webpack.common.js:178
      new ForkCheckerPlugin(),
      ^
TypeError: ForkCheckerPlugin is not a constructor
    at module.exports (C:\Projects\temp\PathTrak12\PathTrak\config\webpack.common.js:178:7)
    at Object.<anonymous> (C:\Projects\temp\PathTrak12\PathTrak\config\webpack.dev.js:23:31)
    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)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at requireConfig (C:\Projects\temp\PathTrak12\PathTrak\node_modules\webpack\bin\convert-argv.js:98:18)
    at C:\Projects\temp\PathTrak12\PathTrak\node_modules\webpack\bin\convert-argv.js:111:17
    at Array.forEach (native)
    at module.exports (C:\Projects\temp\PathTrak12\PathTrak\node_modules\webpack\bin\convert-argv.js:109:15)
    at Object.<anonymous> (C:\Projects\temp\PathTrak12\PathTrak\node_modules\webpack-dev-server\bin\webpack-dev-server.js:190:48)
    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)
    at Module.runMain (module.js:604:10)
    at run (bootstrap_node.js:394:7)
    at startup (bootstrap_node.js:149:9)
npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "server:de
v"
npm ERR! node v6.9.1
npm ERR! npm  v3.10.8
npm ERR! code ELIFECYCLE
npm ERR! angular2-webpack-starter@5.1.1 server:dev: `webpack-dev-server --config config/webpack.dev.js --progress --profile --watch
--content-base src/`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the angular2-webpack-starter@5.1.1 server:dev script 'webpack-dev-server --config config/webpack.dev.js --progres
s --profile --watch --content-base src/'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the angular2-webpack-starter package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     webpack-dev-server --config config/webpack.dev.js --progress --profile --watch --content-base src/
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs angular2-webpack-starter
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls angular2-webpack-starter
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     C:\Projects\temp\PathTrak12\PathTrak\npm-debug.log

npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "start"
npm ERR! node v6.9.1
npm ERR! npm  v3.10.8
npm ERR! code ELIFECYCLE
npm ERR! angular2-webpack-starter@5.1.1 start: `npm run server:dev`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the angular2-webpack-starter@5.1.1 start script 'npm run server:dev'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the angular2-webpack-starter package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     npm run server:dev
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs angular2-webpack-starter
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls angular2-webpack-starter
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     C:\Projects\temp\PathTrak12\PathTrak\npm-debug.log   

package.json文件

"dependencies": {
    "@angular/common": "~2.4.1",
    "@angular/compiler": "~2.4.1",
    "@angular/compiler-cli": "~2.4.1",
    "@angular/core": "~2.4.1",
    "@angular/forms": "~2.4.1",
    "@angular/http": "~2.4.1",
    "@angular/platform-browser": "~2.4.1",
    "@angular/platform-browser-dynamic": "~2.4.1",
    "@angular/platform-server": "~2.4.1",
    "@angular/router": "~3.4.1",
    "@angularclass/conventions-loader": "^1.0.2",
    "@angularclass/hmr": "~1.2.2",
    "@angularclass/hmr-loader": "~3.0.2",
    "angular2-highcharts": "^0.4.0",
    "assets-webpack-plugin": "^3.4.0",
    "core-js": "^2.4.1",
    "http-server": "^0.9.0",
    "ie-shim": "^0.1.0",
    "rxjs": "~5.0.2",
    "zone.js": "~0.7.4"
  },
  "devDependencies": {
    "@types/hammerjs": "^2.0.33",
    "@types/jasmine": "^2.2.34",
    "@types/node": "^6.0.38",
    "@types/protractor": "^1.5.20",
    "@types/selenium-webdriver": "2.53.38",
    "@types/source-map": "^0.5.0",
    "@types/uglify-js": "^2.0.27",
    "@types/webpack": "^2.0.0",
    "angular2-template-loader": "^0.6.0",
    "awesome-typescript-loader": "~3.0.0-beta.17",
    "codelyzer": "~2.0.0-beta.4",
    "copy-webpack-plugin": "^4.0.0",
    "css-loader": "^0.26.0",
    "exports-loader": "^0.6.3",
    "expose-loader": "^0.7.1",
    "file-loader": "^0.9.0",
    "gh-pages": "^0.12.0",
    "html-webpack-plugin": "^2.21.0",
    "imports-loader": "^0.7.0",
    "istanbul-instrumenter-loader": "1.2.0",
    "json-loader": "^0.5.4",
    "karma": "^1.2.0",
    "karma-chrome-launcher": "^2.0.0",
    "karma-coverage": "^1.1.1",
    "karma-jasmine": "^1.0.2",
    "karma-mocha-reporter": "^2.0.0",
    "karma-remap-coverage": "^0.1.4",
    "karma-sourcemap-loader": "^0.3.7",
    "karma-webpack": "1.8.1",
    "node-sass": "^4.1.1",
    "parse5": "^2.2.1",
    "protractor": "^4.0.10",
    "raw-loader": "0.5.1",
    "rimraf": "~2.5.4",
    "sass-loader": "^4.1.1",
    "script-ext-html-webpack-plugin": "1.3.2",
    "source-map-loader": "^0.1.5",
   "string-replace-loader": "1.0.5",
    "style-loader": "^0.13.1",
    "to-string-loader": "^1.1.4",
    "ts-helpers": "1.1.2",
    "ts-node": "^2.0.0",
    "tslint": "^4.0.0-dev.0",
    "tslint-loader": "^3.3.0",
    "typedoc": "^0.5.3",
    "typescript": "2.0.10",
    "url-loader": "^0.5.7",
    "webpack": "^2.1.0-beta",
    "webpack-dev-middleware": "^1.6.1",
    "webpack-dev-server": "2.2.0-rc.0",
    "webpack-md5-hash": "^0.0.5",
    "webpack-merge": "~2.0.0"
  }

1 个答案:

答案 0 :(得分:3)

我想这只是你的角度版本的不匹配。您应该为每个@angular软件包坚持使用相同的版本(路由器除外,它将是高级版本的主要版本,直到角度4发布)。

用你的......

npm install @angular/compiler-cli @angular/platform-server --save

......您似乎至少@angular/compiler-cli位于2. 4.1 ,可能而且@angular/platform-server位于2.4.1。由于您已将其他 @angular软件包设置为固定版本2. 1.1 ,因此会出现一些冲突。

注意:文档将始终假设您使用的是最新(稳定)角度版本。

那么如何解决它......

1。安装旧包

您可以通过添加@angular/compiler-cli&amp;来安装旧软件包。 @angular/platform-server要修复package.json中的 2.1.1 (请不要忘记在此删除插入符号(^))。然后删除node_modules文件夹并再次运行npm install

2。 ...或更新其他包

另一个选择是您将其他@angular软件包更新到最新的2.4.1版本。在这里,您必须使用package.json中的 2.4.1 替换 2.1.1 (路由器 3.4.1除外) )。 然后删除node_modules文件夹并再次运行npm install

根据您的应用,您可能会遇到其他一些问题......您可能需要先查看Changelog

仅供参考:当您在项目中安装新的@angular软件包时,请始终坚持使用您正在使用的版本。要在您的案例中安装特定版本,请注意{注释@2.1.1):

npm install @angular/compiler-cli@2.1.1 @angular/platform-server@2.1.1 --save

...或全部更新到新版本; - )