Я хочу импортировать файл CSS в компонент реакции.
Я пробовал, import disabledLink from "../../../public/styles/disabledLink";
но получаю сообщение об ошибке ниже;
Модуль не найден: Ошибка: не удается разрешить «файл» или «каталог» ../../../public/styles/disabledLink в c: \ Users \ User \ Documents \ pizza-app \ client \ src \ components @. /client/src/components/ShoppingCartLink.js 19: 20-66 Хеш: 2d281bb98fe0a961f7c4 Версия: webpack 1.13.2
C:\Users\User\Documents\pizza-app\client\public\styles\disabledLink.css
это местоположение файла CSS, который я пытаюсь загрузить.
Мне кажется, что импорт не ищет правильный путь.
Я подумал, что с ../../../
его помощью начну искать путь тремя слоями папок выше.
C:\Users\User\Documents\pizza-app\client\src\components\ShoppingCartLink.js
- это расположение файла, который должен импортировать файл CSS.
Что я делаю не так и как это исправить?
источник
Ответы:
Вам даже не нужно называть его, если вам не нужно:
например
import React from 'react'; import './App.css';
см. полный пример здесь ( Создайте JSX Live Compiler как компонент React ).
источник
При создании пакета с веб-пакетом необходимо использовать css-loader .
Установите его:
И добавляем его в загрузчики в конфигах веб-пакетов:
module.exports = { module: { loaders: [ { test: /\.css$/, loader: "style-loader!css-loader" }, // ... ] } };
После этого вы сможете включать файлы css в js.
источник
Я бы предложил использовать модули CSS:
Реагировать
import React from 'react'; import styles from './table.css'; export default class Table extends React.Component { render () { return <div className={styles.table}> <div className={styles.row}> <div className={styles.cell}>A0</div> <div className={styles.cell}>B0</div> </div> </div>; } }
Визуализация компонента:
<div class="table__table___32osj"> <div class="table__row___2w27N"> <div class="table__cell___2w27N">A0</div> <div class="table__cell___1oVw5">B0</div> </div> </div>
источник
import styles from "./disabledLink.css";
и получил следующую ошибку: Модуль не найден: Ошибка: не удается разрешить 'файл' или 'каталог' ./disabledLink.css в c: \ Users \ Basti Kluth \ Documents \ pizza-app \ client \ src \ components @ ./client/src/components/ShoppingCartLink.js 19: 20-49Следующий код импортирует внешний файл CSS в компонент React и выводит правила CSS в файл
<head />
веб-сайта.module.exports = { module: { rules: [ { test: /\.css$/, use: [ 'style-loader', 'css-loader' ] } ] } }
import './path/to/file.css';
источник
rules
значения массива.Приведенные выше решения полностью изменены и устарели. Если вы хотите использовать модули CSS (при условии, что вы импортировали css-загрузчики), я так долго пытался найти ответ на этот вопрос и, наконец, нашел. Загрузчик веб-пакетов по умолчанию в новой версии сильно отличается.
В вашем веб-пакете вам нужно найти часть, начинающуюся с cssRegex, и заменить ее этой;
{ test: cssRegex, exclude: cssModuleRegex, use: getStyleLoaders({ importLoaders: 1, modules: true, localIdentName: '[name]__[local]__[hash:base64:5]' }), }
источник
Модули CSS позволяют использовать одно и то же имя класса CSS в разных файлах, не беспокоясь о конфликтах имен.
Button.module.css
другой-stylesheet.css
.error { color: red; }
Button.js
import React, { Component } from 'react'; import styles from './Button.module.css'; // Import css modules stylesheet as styles import './another-stylesheet.css'; // Import regular stylesheet class Button extends Component { render() { // reference as a js object return <button className={styles.error}>Error Button</button>; } }
источник
Установите загрузчик стилей и загрузчик CSS:
Настроить webpack
module: { loaders: [ { test: /\.css$/, loader: 'style-loader' }, { test: /\.css$/, loader: 'css-loader', query: { modules: true, localIdentName: '[name]__[local]___[hash:base64:5]' } } ] }
источник
В случаях, когда вы просто хотите внедрить некоторые стили из таблицы стилей в компонент без объединения во всей таблице стилей, я рекомендую https://github.com/glortho/styled-import . Например:
const btnStyle = styledImport.react('../App.css', '.button') // btnStyle is now { color: 'blue' } or whatever other rules you have in `.button`.
ПРИМЕЧАНИЕ. Я являюсь автором этой библиотеки и создал ее для случаев, когда массовый импорт стилей и модулей CSS не является лучшим или наиболее жизнеспособным решением.
источник
Вы также можете использовать необходимый модуль.
require('./componentName.css'); const React = require('react');
источник
У меня работают с использованием extract-css-chunks-webpack-plugin и загрузчика css-loader, см. Ниже:
webpack.config.js Импортировать extract-css-chunks-webpack-plugin
const ExtractCssChunks = require('extract-css-chunks-webpack-plugin');
webpack.config.js Добавьте правило css, сначала извлеките фрагменты css , затем загрузчик css css-loader вставит их в документ html, убедитесь, что css-loader и extract-css-chunks-webpack-plugin находятся в package.json dev зависимости
rules: [ { test: /\.css$/, use: [ { loader: ExtractCssChunks.loader, }, 'css-loader', ], } ]
webpack.config.js Создать экземпляр плагина
plugins: [ new ExtractCssChunks({ // Options similar to the same options in webpackOptions.output // both options are optional filename: '[name].css', chunkFilename: '[id].css' }) ]
И теперь возможен импорт css. И теперь в файле tsx, таком как index.tsx, я могу использовать импорт, подобный этому import './Tree.css', где Tree.css содержит правила css, например
body { background: red; }
Мое приложение использует машинописный текст, и это работает для меня, проверьте мое репо на источник: https://github.com/nickjohngray/staticbackeditor
источник
Вы можете импортировать свой
.css
файл в.jsx
файлВот пример -
import Content from '../content/content.jsx';
источник