当前位置: 首页 > 知识库问答 >
问题:

如何解决RollUp Material-用户界面“未定义样式”

鱼意远
2023-03-14

我尝试捆绑一个外部组件,并在运行时加载到我的应用程序。但在加载时,它抛出了“未定义的样式”。有人知道我的汇总中缺少了什么。conf.js?

这是我的rollup.conf.js

export default {
  input: 'src/index.js',
  output: [
    {
      file: pkg.main,
      format: 'cjs',
      sourcemap: true
    },
    {
      file: pkg.module,
      format: 'es',
      sourcemap: true
    },
    {
      file: pkg.umdModule,
      format: 'umd',
      name: pkg.name
    }
  ],
  plugins: [
    postcss({
      plugins: [],
      minimize: true,
      sourceMap: 'inline'
    }),
    external({
      includeDependencies: true
    }),
    url(),
    svgr(),
    resolve(),
    babel({
      presets: [
        'react-app'
      ],
      plugins: [
        '@babel/plugin-proposal-object-rest-spread',
        '@babel/plugin-proposal-optional-chaining',
        '@babel/plugin-syntax-dynamic-import',
        '@babel/plugin-proposal-class-properties',
        'transform-react-remove-prop-types',
        [
          'babel-plugin-import',
          {
            'libraryName': '@material-ui/core',
            // Use "'libraryDirectory': ''," if your bundler does not support ES modules
            'libraryDirectory': 'esm',
            'camel2DashComponentName': false
          },
          'core'
        ]
      ],
      exclude: 'node_modules/**',
      runtimeHelpers: true
    }),
    replace({
      'process.env.NODE_ENV': JSON.stringify('production')
    }),
    commonjs(),
    terser()
  ]
}

这是抛出“未定义样式”的组件

import React from 'react'
import PropTypes from 'prop-types'
import { DialogTitle as MuiDialogTitle, IconButton, Icon, Typography } from '@material-ui/core'
import { withStyles } from '@material-ui/core/styles'

const styles = theme => ({
  closeButton: {
    position: 'absolute',
    right: theme.spacing(1),
    top: theme.spacing(1),
    color: theme.palette.grey[500]
  }
});

const DialogTitle = ({ children, classes, onClose }) => (
  <MuiDialogTitle>
    {children ? <Typography variant='inherit'>{children}</Typography> : null}
    {onClose ? (
      <IconButton aria-label='close' className={classes.closeButton} onClick={onClose}>
        <Icon name={'close'} />
      </IconButton>
    ) : null}
  </MuiDialogTitle>
);

DialogTitle.propTypes = {
  ...DialogTitle.propTypes,
  onClose: PropTypes.func
};

export default withStyles(styles)(DialogTitle)

Stackoverflow说我应该写更多的文本,以防我的代码太长,他们认为它的信息太少。但希望现在这是足够的文本。

共有1个答案

怀齐智
2023-03-14

我想你可以更新你的rollup.config.js

... 

import commonjs from 'rollup-plugin-commonjs'

...
//rollup.config.js

export default {

...

plugins: [

...

  commonjs({
    include: ['node_modules/**'],
    namedExports: {
      'node_modules/@material-ui/core/styles': ['withStyles']
    }
  })
]

node_modules/@material ui/core/style可能需要与node_modules/@material ui/core/index不同。js,但您应该可以在错误消息中看到路径。

找到另一种(可能更好)方法是在汇总的外部中包含@material ui/core。配置。js

//rollup.config.js

...

export default {
  input: 'src/index.ts',
  ...
  external: ["@material-ui/core"],

}
 类似资料:
  • 但为了让它看起来像这样,我必须添加硬编码的大小限制,从而使它不具有自适应性。 这里是xml布局。 如何使此图像具有自适应性,并且仍然看起来像第一张图像?

  • GUI Styles are a collection of custom attributes for use with UnityGUI. A single GUI Style defines the appearance of a single UnityGUI Control. 图形用户界面样式是一组自定义属性用于Unity图形用户界面。一个独立的图形用户界面样式定义了一个Unity图形用

  • 你好想问一下,刚刚接触react,之前写的js在html上可以使用,但是换到这里显示document is not defined,如果在document.getElementById不能用的情况下还有什么办法能够通过id获取到元素?或者应该怎么修改才能正常获取呢?写的屎山如下,请大佬指教qaq 1

  • 我已经从Spring Boot 1.5升级到Spring Boot 2.1.8。我做了一些测试,但现在失败了。我还在2.9版本中使用maven surefire插件,它也能正常工作,但如果有必要的话,我也将其升级到了2.22.0。 还有另一个类似于上述的类,但将Site1替换为Site2。 有一个ElementController 我得到这个例外: 我没有编写测试,这是我继承的代码,在一个代码库中

  • 我有两个文件,一个是'a.js'在压缩文件夹中,另一个是b.js在压缩文件夹中的一个文件夹b中,我正在使用Express的路由。我是一个初学者,不知道如何解决这个错误,它意味着什么。我想在a.js中使用b文件。A.JS 这是B.JS 这是错误 This.Stack.Push(层);^ TypeError:无法读取function.route(C:\users\palwasha\downloads\

  • 主要内容:将Mat转换成缓冲的图像,使用AWT/Swings显示图像在前面的章节中,我们讨论了如何使用OpenCV Java库来读取和保存图像。 除此之外,我们还可以使用GUI库(如AWT/Swings和JavaFX)在单独的窗口中显示加载的图像。 将Mat转换成缓冲的图像 要读取图像,使用方法。 此方法返回以的形式读取的图像。 但是,要将此图像与GUI库(AWT/Swings和JavaFX)结合使用,应将其转换为包的类的对象。 以下是将OpenCV的对象转换为对