我的目标是在分发包中提供一个 css 文件,如果需要,消费者可以使用它。
为此,我想创建一种全局 scss 文件,但我想避免这种样式附加到每个组件 + 它也不会被组件直接使用。因此,为此我想my-style.scss
在文件夹中的某处创建文件/src
。
编译这个文件my-style.css
并将其复制到dist
文件夹的最佳方法是什么?
我的目标是在分发包中提供一个 css 文件,如果需要,消费者可以使用它。
为此,我想创建一种全局 scss 文件,但我想避免这种样式附加到每个组件 + 它也不会被组件直接使用。因此,为此我想my-style.scss
在文件夹中的某处创建文件/src
。
编译这个文件my-style.css
并将其复制到dist
文件夹的最佳方法是什么?
It is possible to specify a global style with Stencil. Simply add the globalStyle
property to your stencil.config.js
and provide the entry scss
file. Your config should look something like this:
const sass = require('@stencil/sass');
exports.config = {
namespace: 'my-component-lib',
outputTargets:[
{
type: 'dist'
},
{
type: 'www',
serviceWorker: false
}
],
globalStyle: 'src/globals/app.scss',
plugins: [
sass()
]
};
exports.devServer = {
root: 'www',
watchGlob: '**/**'
}
The build will successfully compile the scss to dist/my-component-lib.css
.
来自文档:https ://stenciljs.com/docs/config/#copy
copy
config 是一个对象数组,它定义了应该复制到构建目录的任何文件或文件夹。数组中的每个对象都必须包含一个src
属性,该属性可以是绝对路径、相对路径或全局模式。配置还可以提供一个可选dest
属性,该属性可以是绝对路径或相对于构建目录的路径。另请注意,为方便起见,其中的任何文件都会src/assets
自动复制到www/assets
。在下面的复制配置中,它将整个目录从
src/docs-content
over 复制到www/docs-content
.
在 stencil.config.ts 中:
copy: [
{ src: 'docs-content' }
]
例如,我将我的 css 文件从 src 复制到构建目录,它是完全独立的,例如https://github.com/BlazeUI/blaze/blob/master/packages/atoms/stencil.config.ts#L14