我正在尝试将 React 组件移植到 Stenciljs。
组件 .scss 文件具有另一个 A.scss 文件的 @import。该 A.scss 文件 @import bootstrap-sass/assets/stylesheet/bootstrap/_variables 和 @import 另一个 B.scss。
Stenciljs 可以处理吗,还是我需要将所有内容合并到一个文件中?
谢谢
我正在尝试将 React 组件移植到 Stenciljs。
组件 .scss 文件具有另一个 A.scss 文件的 @import。该 A.scss 文件 @import bootstrap-sass/assets/stylesheet/bootstrap/_variables 和 @import 另一个 B.scss。
Stenciljs 可以处理吗,还是我需要将所有内容合并到一个文件中?
谢谢
您可以导入其他 Sass 文件,无需将所有内容合并到一个文件中。
你可以继续使用 Sass,就像你在 React 中使用它一样,请记住,要能够将 Sass 与 StencilJS 一起使用,你必须安装 Sass 插件并将插件添加到plugins
你的stencil.config.js
.
有关更多信息,请查看 StencilJS 网站中的Sass 文档。
在您的stencil.config.ts
(或stencil.config.js
)中:
export const config: Config = {
plugins: [
sass({
includePaths: [path.resolve(__dirname, 'path/to/styles')]
})
]
};
是的,它可以处理 sass 文件及其导入。
安装模板/sass
npm i @stencil/sass -D
在你的stencil.config.ts
文件中
import { Config } from "@stencil/core";
import { sass } from "@stencil/sass";
export const config: Config = {
// ... You configuration
plugins: [
sass({
includePaths: ["./node_modules/"],
}),
],
};
在上面的例子中,我们告诉 Stencil 编译器编译 sass 文件。该includePaths
数组告诉编译器它应该查找 sass 文件的目录/文件。
为了@import
从 nodejs 包中使用,您只需要:
@import "~bootstrap-sass/assets/stylesheet/bootstrap/_variables";
注意:这里的~运算符在不使用相对路径(./style.scss、../../style.scss 等)导入时是必需的;
如果您b.scss
使用相对路径(./b.scss、../b.scss 等)导入文件,则无需在 sass 插件配置中添加任何其他内容。
我希望这能回答你的问题。
我从未尝试过多次导入,但我不明白为什么这不起作用。
要使模板与 .scss 一起使用,您应该安装此插件,如此处所述
npm install @stencil/sass --save-dev
然后将此属性添加config
到stencil.config.ts
plugins: [
sass()
]