以角度2将所有css文件转换为scss

Posted

技术标签:

【中文标题】以角度2将所有css文件转换为scss【英文标题】:Converting all css files to scss in angular 2 【发布时间】:2017-08-15 06:18:57 【问题描述】:

我从事过 angular 2 项目并使用过 angular-cli。我想用 scss 替换所有的 css 文件。最简单的方法是什么?或者是否有一个命令行可以处理它而无需手动操作。

【问题讨论】:

【参考方案1】:

我只需要对现有项目执行此操作,然后将来自不同地方的大量信息拼凑在一起,主要来自this similar *** question。这是一组命令行操作(在 Mac OSX 上对我有用)

# rename all your current files
find . -name "*.css" -exec bash -c 'mv "$1" "$1%.css".scss' - '' \;

# change angular cli config file to include styles.scss instead of styles.css
sed -i -e 's/styles.css/styles.scss/g' .angular-cli.json

# now we need to go thru and fix up all the places where ts files refer to .css files
# there’s probably a better way (and will only work if you don’t have multiple css files in a component)
# this is what I did
find ./src -name "*.ts" -exec sed -i -e 's/\(.*styleUrls.*\)\.css\(.*\)/\1\.scss\2/g'  +
rm -r *.ts-e

# fix for future generates styles
ng set defaults.styleExt scss

# Add node-sass npm module

npm install node-sass --save-dev

# or if you are using yarn, like me:

yarn add node-sass --dev

【讨论】:

如果您在运行第一个命令时很草率,并且在项目的根目录下执行了此操作,那么您可能已经重命名了一些 npm 依赖项的文件。如果是这样,请删除这些依赖项并执行npm i 重新安装...【参考方案2】:

Step1 :- 将所有 css 文件从 css (style.css) 重命名为 scss (style.scss)

Step2 :- 如果您使用的是旧版本(直到 4),请检查 .angular-cli.json 文件并在下面的代码中将 css 替换为 scss “默认值”: "styleExt": "scss", “零件”:

      if you are using latest version (6) than please check angular.json 
      file and replace css to scss
      "schematics": 
       "@schematics/angular:component": 
        "styleext": "scss"
      
      ,

然后重启项目

注意:- 对于角度(直到 4),我们使用 sass-loader 将 scss 转换为 css

但对于最新版本 (6),我们使用 node-sass 将 scss 转换为 css,因此如果您遇到类似(模块构建失败:错误:sass-loader 需要node-sass >=4。请安装兼容版本) 比请使用下面的命令

npm 重建节点-sass

【讨论】:

【参考方案3】:

是的,现在我必须这样做并为 sass-convert 添加一个步骤,因为 angular 决定将其合并到

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

-.-

非常感谢“亚历克斯·伊格尔”

【讨论】:

以上是关于以角度2将所有css文件转换为scss的主要内容,如果未能解决你的问题,请参考以下文章

在实时服务器上自动将 SCSS 转换为 CSS

Gulp 没有将 scss 转换为 css

将scss文件转换成css文件

将 scss 转换为 css [关闭]

sh 将.scss文件转换为.sass文件。

sh 将.scss文件转换为.sass文件。