简体   繁体   English

create-react-app 2.0,如何在 sass/scss 文件中使用绝对路径导入?

[英]create-react-app 2.0, how to use absolute path import in sass/scss files?

I am using creacte-react-app 2.0.0-next.66cc7a90 , which already has support for Sass/Scss files我正在使用creacte-react-app 2.0.0-next.66cc7a90 ,它已经支持 Sass/Scss 文件

however with default relative import in Sass/Scss files, i have to use code like @import "../../../../../styles/variables/_variables.scss";但是在 Sass/Scss 文件中使用默认的相对导入,我必须使用类似@import "../../../../../styles/variables/_variables.scss";代码@import "../../../../../styles/variables/_variables.scss";

instead I want to use absolute import so i can import with code @import "styles/variables/_variables.scss";相反,我想使用绝对导入,因此我可以使用代码@import "styles/variables/_variables.scss";导入@import "styles/variables/_variables.scss";

I know one way to acheve so is to update options我知道一种方法是更新选项

{
   loader: "sass-loader",
   options: {
        includePaths: ["absolute/path/a", "absolute/path/b"]
 }

but I want to do it without ejecting, how can i do it?但是我想在不弹出的情况下进行,我该怎么做? using react-app-rewired?使用react-app-rewired?

Add the required root include paths to SASS_PATH environment variable.将所需的根包含路径添加到SASS_PATH环境变量。

It can be set either when you run the yarn or npm commands or in a .env file.可以在运行yarnnpm命令时或在.env文件中设置它。

Example例子

// my-component.jsx
import React from 'react';
import './my-component.scss';

class MyComponent extends React.Component {
  render() {
    return (<div className="container">Hello</div>);
  }
}
// my-component.scss
@import 'styles/abstracts/variables';

.container {}

Assuming styles/abstracts/_variables.scss exists under src , you could do the following:假设src下存在styles/abstracts/_variables.scss ,您可以执行以下操作:

SASS_PATH=src yarn start

OR或者

echo SASS_PATH=src > .env
yarn start

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM