使用符号链接时,Angular-cli不会加载样式

时间:2017-01-18 04:10:41

标签: angular sass angular-cli

我有一个运行angular-cli 1.0.0-beta.21的Angular 2应用。在开发的开始,我遇到了这个问题,没有加载任何样式。我正在使用SASS,它正好被编译到styles.bundle.js中,但我的应用程序中没有样式。我试过并尝试修复它,但不得不重新开始使用新模板。一切都运转正常。

今天我跑了ng serve,现在又发生了。昨晚我上床睡觉时没事。我还没有更新任何东西。

有谁知道为什么会这样?这是某种缓存吗?即使运行ng build也会得到相同的结果。

更新

我设法解决了这个问题。我已将整个目录移动到其他位置。搬回去似乎已经成功了。 我仍然不知道为什么会发生这种情况。我尝试在所有文件中搜索路径,但没有出现。我仍然不知道为什么会发生这种情况。这意味着我现在无法决定将我的应用程序移动到其他位置。

我使用的是Windows 10

angular-cli: 1.0.0-beta.21
node: 6.9.1
os: win32 x64

我使用ng new <projec_name>生成了项目。

更新2:

这是我的angular-cli.json。我在这里看不到任何会因将整个项目移动到另一个文件夹而受到影响的内容。

{
  "project": {
    "version": "1.0.0-alpha.2",
    "name": "core-ui"
  },
  "apps": [
    {
      "root": "src",
      "outDir": "dist",
      "assets": "assets",
      "index": "index.html",
      "main": "main.ts",
      "test": "test.ts",
      "tsconfig": "tsconfig.json",
      "prefix": "app",
      "mobile": false,
      "styles": [
        "scss/style.scss"
      ],
      "scripts": [
        "../node_modules/chart.js/dist/Chart.bundle.min.js",
        "../node_modules/chart.js/dist/Chart.min.js"
      ],
      "environments": {
        "source": "environments/environment.ts",
        "dev": "environments/environment.ts",
        "prod": "environments/environment.prod.ts"
      }
    }
  ],
  "addons": [],
  "packages": [],
  "e2e": {
    "protractor": {
      "config": "./protractor.conf.js"
    }
  },
  "test": {
    "karma": {
      "config": "./karma.conf.js"
    }
  },
  "defaults": {
    "styleExt": "scss",
    "prefixInterfaces": false
  }
}

更新3:

我发现我的错误与我的第一个发现有关。移动目录不是问题的原因; 其符号链接。如果从命令行我通过符号链接导航到根目录,则不加载任何样式。如果我导航到正确的物理路径,一切正常。

TL; DR

如果在Windows上使用符号链接导航到目录,Angular-cli将不会加载和应用样式。为什么会这样?

1 个答案:

答案 0 :(得分:0)

生成新项目时,您还可以定义样式文件所需的扩展名:

ng new <projec_name> --style=sass

或者在现有项目上设置默认样式:

ng set defaults.styleExt scss

欲了解更多信息,请访问:

https://github.com/angular/angular-cli