首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CSS模块被捆绑,但没有使用TSDX引用,TSDX使用的是卷起底座

CSS模块被捆绑,但没有使用TSDX引用,TSDX使用的是卷起底座
EN

Stack Overflow用户
提问于 2020-08-06 14:17:14
回答 2查看 2.2K关注 0票数 4

我已经使用TSDX→→创建了一个反应库。

它使用CSS &将样式附加到React库。

这个包正确地将CSS文件输出到dist/文件夹中,但它从未真正引用过它。

这使得我的风格根本没有出现。

这是我的完整tsdx.config.js

代码语言:javascript
复制
const postcss = require('rollup-plugin-postcss');
const { terser } = require('rollup-plugin-terser');
const autoprefixer = require('autoprefixer');
const cssnano = require('cssnano');

module.exports = {
  rollup(config, options) {
    config.plugins.push(
      postcss({
        modules: true,
        plugins: [
          autoprefixer(),
          cssnano({
            preset: 'default',
          }),
        ],
        inject: false,
        // only write out CSS for the first bundle (avoids pointless extra files):
        extract: !!options.writeMeta,
        minimize: true,
      }),
      terser()
    );
    return config;
  },
};

如果您看到dist/文件夹在https://yarnpkg.com/package/@deadcoder0904/react-typical?files,那么您会注意到它有index.js文件,但它根本不引用.css文件。

每个.js文件在dist/文件夹中都是一样的。没有文件引用.css文件& CSS代码根本没有绑定,所以它只是不使用样式。

我该怎么解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-08 15:46:36

据我理解,通常库通常分别介绍组件&样式,如果用户希望使用默认样式,请让他们在文档中知道,然后也允许导入css文件,例如:

代码语言:javascript
复制
import ReactTypical from "react-typical"
import "react-typical/dist/react-typical.cjs.development.css"

我想这和你的情况一样

或者在默认情况下设置样式,而不要求它们手动导入--这意味着您必须通过设置inject: true来改进配置,它将将您的css上下文导入您的js文件中,然后在运行时执行以在文档的<head />中追加脚本。然后,您更改的配置如下所示:

代码语言:javascript
复制
postcss({
  modules: true,
  plugins: [
    autoprefixer(),
    cssnano({
      preset: 'default',
    }),
  ],
  // Append to <head /> as code running
  inject: true,
  // Keep it as false since we don't extract to css file anymore
  extract: false,
})
票数 5
EN

Stack Overflow用户

发布于 2020-08-09 15:06:14

为了处理故事书,请将以下css规则添加到webpack故事书配置./story/main.js

代码语言:javascript
复制
// Remove the existing css rule
config.module.rules = config.module.rules.filter(
  f => f.test.toString() !== '/\\.css$/'
);

config.module.rules.push(
  {
    test: /\.css$/,
    use: [
      'style-loader',
      'css-loader',
    ],
    include: path.resolve(__dirname, "../src"),
  }
)

但是在您的包依赖项中想念它们,只需记住添加它们:

代码语言:javascript
复制
npm i -D style-loader css-loader
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63285566

复制
相关文章

相似问题

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