【问题标题】:i18n compilation failed with Sass - Resource file not foundi18n 编译因 Sass 失败 - 找不到资源文件
【发布时间】:2017-11-26 03:35:39
【问题描述】:

在我们的 Angular 4 应用程序中,我们尝试使用 i18n,问题是当我们运行 npm run i18n 时,我们收到错误“找不到资源文件”:

错误:编译失败。找不到资源文件:C:/Projekte/Git/KWKPortal/App/src/app/core/menu/src/app/shared/styles/variables 在 ModuleResolutionHostAdapter.readResource (C:\Projekte\Git\KWKPortal\App\node_modules\@angular\compiler-cli\src\compiler_host.js:387:19) 在 CompilerHost.loadResource (C:\Projekte\Git\KWKPortal\App\node_modules\@angular\compiler-cli\src\compiler_host.js:251:29) 在 Object.get (C:\Projekte\Git\KWKPortal\App\node_modules\@angular\compiler\bundles\compiler.umd.js:27273:103) 在 DirectiveNormalizer._fetch (C:\Projekte\Git\KWKPortal\App\node_modules\@angular\compiler\bundles\compiler.umd.js:14095:43) 在 C:\Projekte\Git\KWKPortal\App\node_modules\@angular\compiler\bundles\compiler.umd.js:14211:68 在 Array.map (本机) 在 DirectiveNormalizer._loadMissingExternalStylesheets (C:\Projekte\Git\KWKPortal\App\node_modules\@angular\compiler\bundles\compiler.umd.js:14211:14) 在 C:\Projekte\Git\KWKPortal\App\node_modules\@angular\compiler\bundles\compiler.umd.js:14214:26 在 process._tickCallback (internal/process/next_tick.js:109:7) 在 Module.runMain (module.js:606:11) 提取失败

这就是我导入variables.scss的方式:

@import "src/app/shared/styles/variables";

我也尝试了.scss,但没有成功。

这是我的文件夹结构:

这是我的package.json

{
  "name": "app",
  "version": "0.0.0",
  "license": "MIT",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e",
    "i18n": "ng-xi18n"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^4.1.3",
    "@angular/common": "^4.0.0",
    "@angular/compiler": "^4.0.0",
    "@angular/core": "^4.0.0",
    "@angular/forms": "^4.0.0",
    "@angular/http": "^4.0.0",
    "@angular/platform-browser": "^4.0.0",
    "@angular/platform-browser-dynamic": "^4.0.0",
    "@angular/router": "^4.0.0",
    "@progress/kendo-angular-dropdowns": "^1.0.10",
    "@progress/kendo-angular-l10n": "^1.0.0",
    "@progress/kendo-angular-layout": "^1.0.3",
    "@progress/kendo-theme-default": "^2.37.1",
    "core-js": "^2.4.1",
    "rxjs": "^5.1.0",
    "zone.js": "^0.8.4"
  },
  "devDependencies": {
    "@angular/cli": "1.0.3",
    "@angular/compiler-cli": "^4.0.0",
    "@types/jasmine": "2.5.38",
    "@types/node": "~6.0.60",
    "codelyzer": "~2.0.0",
    "jasmine-core": "~2.5.2",
    "jasmine-spec-reporter": "~3.2.0",
    "karma": "~1.4.1",
    "karma-chrome-launcher": "~2.1.1",
    "karma-cli": "~1.0.1",
    "karma-coverage-istanbul-reporter": "^0.2.0",
    "karma-jasmine": "~1.1.0",
    "karma-jasmine-html-reporter": "^0.2.2",
    "node-sass": "^4.5.3",
    "protractor": "~5.1.0",
    "ts-node": "~2.0.0",
    "tslint": "~4.5.0",
    "typescript": "~2.2.0"
  }
}

【问题讨论】:

  • 你在哪里导入 variables.scss ?文件及其路径?
  • 请同时发布您的 package.json
  • 谢谢。我用我的文件夹结构和 package.json 更新了我的问题。 'ng build' 工作正常...
  • npm install @angular/{common,compiler,compiler-cli,core,forms,http,platform-b​​rowser,platform-b​​rowser-dynamic,platform-server,router}@latest typescript@latest - -save 只需运行此命令并重试
  • 我有一个错误:+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : MissingArgument

标签: angular sass


【解决方案1】:

对于 Sass - 找不到资源文件

将路径更改为:

@import "../../shared/styles/variables";

和文件名:

variables.scss_variables.scss

下划线让 Sass 知道该文件只是部分文件,并且 它不应该被生成到 CSS 文件中。 Sass 部分是 与@import 指令一起使用。


对于toLowerCase 错误:

package.json中添加--i18nFormat=xlf

"i18n": "ng-xi18n --i18nFormat=xlf"

【讨论】:

  • 现在看起来好多了,但我仍然有以下错误:TypeError: Cannot read property 'toLowerCase' of null。你知道这是什么吗?不过,我会将其设置为正确答案。不幸的是,我不得不明确地使用扩展名 .scss。谢谢
  • no :( 我已经试过了,我找到了这个链接:github.com/angular/angular/issues/16235 我正要发帖问问
  • 好的,尝试将其添加到您的“i18n”中:“ng-xi18n --i18nFormat=xlf”
  • 然后运行:npm run i18n
  • 是的!谢谢...我现在生成了文件
猜你喜欢
  • 1970-01-01
  • 2014-07-05
  • 2013-07-27
  • 1970-01-01
  • 2021-09-03
  • 1970-01-01
  • 2021-12-15
  • 2019-04-06
  • 2019-02-08
相关资源
最近更新 更多