首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在CRA构建期间将scss编译包含到css中

如何在CRA构建期间将scss编译包含到css中
EN

Stack Overflow用户
提问于 2020-07-07 11:16:24
回答 1查看 1.3K关注 0票数 0

我想创建npm包从我的CRA应用程序。假设我有一些包含.scss文件的组件。当我构建这个应用程序时,我会将. .tsx/ts组件编译成JavaScript文件,并给出它们的定义。

编译后的文件夹层次结构可能如下所示

代码语言:javascript
复制
components
=> BurgerMenu
    => BurgerMenu.d.ts
    => BurgerMenu.js
    => BurgerMenu.js.map

但是,编译后的JavaScript文件导入scss文件require("./burgerMenu.scss");而不是css文件,并且css文件没有编译到特定的文件夹中。

预期结果如下

代码语言:javascript
复制
components
=> BurgerMenu
    => BurgerMenu.d.ts
    => BurgerMenu.js
    => BurgerMenu.js.map
    => BurgerMenu.css

如何在构建期间设置sass编译,以及在每个组件中更改从scss到css的导入?

样本BurgerMenu组件

代码语言:javascript
复制
import * as React from "react";
import "./burgerMenu.scss";

export const BurgerMenu = (props) => {
  //removed for brevity
};

package.json

代码语言:javascript
复制
{
  "name": "app",
  "version": "0.1.0",
  "private": false,
  "main": "dist/js/index.js",
  "module": "dist/esm/index.js",
  "types": "dist/js/index.d.ts",
  "publishConfig": {
    "access": "public",
    "tag": "prerelease"
    },
  },
"scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject",
    "build:lib": "yarn build:babel && yarn build:types && node ./scripts/copyTS.js",
    //TODO: node sass compile
    "build:babel": "concurrently \"yarn build:babel:esm && yarn build:babel:umd\" \"yarn build:babel:cjs\"",
    "build:babel:cjs": "cross-env BABEL_ENV=cjs babel --source-maps --extensions \".js,.ts,.tsx\" src --out-dir dist/js --presets=@babel/env",
    "build:babel:esm": "cross-env BABEL_ENV=esm babel --source-maps --extensions \".js,.ts,.tsx\" src --out-dir dist/esm",
    "build:babel:umd": "cross-env BABEL_ENV=umd babel --source-maps --extensions \".js\" dist/esm --out-dir dist/umd --plugins=transform-es2015-modules-umd",
    "build:types": "tsc -p tsconfig.gen-dts.json",
    "clean": "rimraf dist",
    "develop": "yarn build:types && yarn build:babel:esm --skip-initial-build --watch --verbose",
    },  
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-07 16:43:58

node-sass npm包可用于将所有.scss文件转换为.css文件,也可用于导入模块。

将此添加到您的package.json中

代码语言:javascript
复制
"scripts" : {
    ...
    "build-css": "node-sass src/scss/ -o dist"
}

下面是如何使用node-sass的一个很好的解释-- How to compile or convert sass / scss to css with node-sass (no Ruby)?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62774040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档