- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Python 和 Flask 方面有超过 10 年的经验,主要关注后端,很少使用 HTML + JavaScript,但 CSS 为零。大约 6 周前,我开始使用 React 和 JavaScript,并使用 React 制作了不需要太多样式的简单应用程序。但是,现在我需要使用 React 来制作一个相当大的项目,并使用索环进行样式设置。
我从 react 样板开始 1 。看完react-boilerplate scss docs和//github.com/grommet/grommet-standalone 自述文件,我的理解是,我需要更改 webpack 配置才能使 scss 加载器正常工作。
我的环境是win8.1 x64,节点6.4.0
这是我所做的更改。
安装了 sass-loader
和 node-sass
在 internals\webpack\webpack.dev.babel.js
中已更改
cssLoaders: 'style-loader!css-loader?localIdentName=[local]__[path][name]__[hash:base64:5]&modules&importLoaders=1&sourceMap!postcss-loader',
至
cssLoaders: 'style-loader!css-loader?localIdentName=[local]__[path][name]__[hash:base64:5]&modules&importLoaders=1&sourceMap!postcss-loader!sass-loader',
注意附加的!sass-loader,按照//github.com/mxstbr/react-boilerplate/blob/master/docs/css/sass.md
internals\webpack\webpack.base.babel.js
{ test:/\.scss$/, loader: 'style!css!sass?outputStyle=compressed' }
@ CSS block 下方的第 40 行,以及
sassLoader: {
includePaths: [
'./node_modules',
// this is required only for NPM < 3.
// Dependencies are flat in NPM 3+ so pointing to
// the internal grommet/node_modules folder is not needed
'./node_modules/grommet/node_modules'
]
}
@line 62[第58行,如果您正在master分支中查找@ github源代码//github.com/mxstbr/react-boilerplate/blob/master/internals/webpack/webpack.base.babel.js, +4是因为为 scss block 添加了 4 行]
在同一个文件中,在 resolve.extenstions
数组中添加了 '.scss'
。
现在,在这些更改之后,我运行 npm start 并将以下行添加到 app\containers\App\index.js
现在,在这些更改之后,我运行 npm start 并将以下行添加到应用程序\容器\应用程序\index.js
导入'grommet/scss/vanilla/index';
根据此处的文档//github.com/grommet/grommet-standalone
在 cmd.exe 控制台中出现以下错误
ERROR in ./app/containers/App/index.js
Module not found: Error: Can't resolve 'grommet/scss/vanilla/index' in 'C:\Users\coder\frontend\app\containers\App'
@ ./app/containers/App/index.js 57:0-36
@ ./app/app.js
@ multi main
Child html-webpack-plugin for "index.html":
不用说,grommet 已安装,并且文件存在于具有 scss 扩展的所需位置。我当然可以使用扩展名导入 import 'grommet/scss/vanilla/index.scss
然后我收到以下错误
ERROR in ./~/css-loader!./~/style-loader!./~/css-loader!./~/sass-loader?outputStyle=compressed!./~/grommet/scss/vanilla/index.scss Module build failed: Unknown word (5:1)
3 | // load the styles 4 | var content = require("!!./../../../css-loader/index.js!./../../../sass-loader/index.js?outputStyle=compressed!./index.scss");
> 5 | if(typeof content === 'string') content = [[module.id, content, '']];
| ^ 6 | // add the styles to the DOM 7 | var update = require("!./../../../style-loader/addStyles.js")(content, {}); 8 | if(content.locals) module.exports = content.locals;
@ ./~/grommet/scss/vanilla/index.scss 4:14-189 13:2-17:4 14:20-195
我在这里缺少一些非常明显的东西吗?看起来好像 scss 加载器不起作用。如果您已成功将grommet与react-boilerplate结合使用,请发布您所做的更改。
PS:Stack Overflow 通知我不能发布两个以上的链接,因此我修改了链接以在网址中省略 https:,请手动添加。
最佳答案
要运行 Grommet 内置样式(主题),您无需安装 sass-loader 或 node-sass,除非您想使用 scss 自定义其样式。
当您安装了grommet包时,它包含节点模块本身内部支持的主题的缩小CSS,您可以直接使用它导入到您的应用程序中。
要解决您的问题,您只需将以下导入添加到您的index.js 文件中,这将为您提供默认的索环样式
import 'grommet/grommet.min.css';
它是一个缩小的 css 文件,因此您无需处理索环中的 scss 文件。这将作为一个简单的 css 文件使用。
除此之外,您还可以从索环中选择不同的可用主题。缩小的 css 也适用于此。以下是这些 css 的列表:
关于reactjs - React-boilerplate+grommet,使 sass 与 webpack 一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39820497/
我正在将grommet-ui与webpack和react结合使用。如何设置自己的颜色选项。 有没有办法使用我自己的自定义颜色/配色方案来代替预定义的颜色,例如 colorIndex="neutral-
我正在使用 Grommet v2 组件,并尝试镜像 Grommet 故事书中的选择“季节”示例中使用的显示。 该字段如下所示: 不同之处在于我的数据需要分离标签和值: const Options =
我有一个使用 grommet ux 框架的 React/redux 应用程序。基本结构是:
我正在使用 react-icons 和 Font Awesome 图标,我设法通过两种方法轻松更改颜色: 与颜色 Prop 一起使用: 与 css 一起使用: .icone { color: #
我正在使用索环开发一个应用程序。库中的许多组件都有一个 onClick 属性,当您向组件的 onClick 属性提供回调函数时,它就会变得可悬停。但 TableRow 组件似乎不会发生这种情况。 fi
我正在使用 grommet对于 React 元素,我想知道如何将两个 中的文本大写组件。 最佳答案 您要求将 header 设为大写并执行大写。 在你的回答中你是这样做的, {product.nam
我在 Python 和 Flask 方面有超过 10 年的经验,主要关注后端,很少使用 HTML + JavaScript,但 CSS 为零。大约 6 周前,我开始使用 React 和 JavaScr
我正在尝试在我的 React 项目中使用 grommet,并且正在使用 webpack。我已经添加了 scss 加载器,当我构建我的应用程序时,我收到以下错误: ERROR in ./~/css-lo
通常 span 不应该有任何 margin-top,那是什么原因呢?另外,出于某种原因,如果我将一个 Text 实例放在一个表单元素中,那么它就不再像通常那样获得 margin-top 了吗? imp
我是一名优秀的程序员,十分优秀!