React Toolbox Использовать стиль CSS по умолчанию

Как правильно использовать стиль React-Toolbox по умолчанию?

Я хотел бы попробовать эту библиотеку, но потерял часы, пытаясь настроить файл scss/css. Я могу импортировать и отображать компоненты react-toolbox, но они не стилизованы.
Шрифт и материал Roboto прекрасно работают с тегами <link> в public/index.html.

В соответствии с краткими этапами установки я включил css-loader, sass-loader и babel.

Я скопировал пример проекта с https://github.com/react-toolbox/react-toolbox-example. Я удалил лишние таблицы стилей, такие как style.scss, в нескольких местах, чтобы упростить и уменьшить путаницу. Я заметил, что пример проекта также включает <link rel="stylesheet" href="react-toolbox.css"> (чего я не вижу в шагах установки, документации или README). Этот <link> обязателен, его удаление дестилизует пример. (Дополнительный вопрос: как и где заканчивается сборка/обслуживание файла css? Его нет в каталоге даже после локального обслуживания с помощью npm.)

Итак, я скопировал все/большую часть index.jsx, package.json и webpack.config.js из примера и добавил эту таблицу стилей <link>, сопоставив имя файла с примером и моей конфигурацией.

Я импортирую общее достояние с import 'react-toolbox/lib/commons'.

Ссылка на стиль и импорт, похоже, не действуют. У меня нет ошибок от npm/webpack при запуске npm start. В одной из похожих проблем на github есть комментарий, в котором выражается удивление по поводу отсутствия ошибки веб-пакета для аналогичной проблемы.

Я также пробовал [3] (см. комментарий), хотя я не понимаю, что это делает. Этот плакат подразумевал, что он не идеален, и я не видел такого шаблона где-либо еще.

Я понимаю, что это может дублировать React-toolbox, как правильно включать стили. Мой представитель слишком низок, чтобы комментировать там, и этот вопрос в настоящее время остается без ответа. Поскольку связанные проблемы кажутся распространенными, я надеюсь, что ответ сообщества будет полезен.

В различных проблемах это звучит так, как будто это была просто проблема с конфигурацией веб-пакета. Если это так, я хотел бы знать правильную конфигурацию , пожалуйста. Я подозреваю, что где-то пропустил одну строку или около того, или пропустил что-то простое о современном интерфейсе с React и Webpack в целом, что может быть принято или общеизвестно для большинства; Я новичок в этих инструментах.

Я почти готов просто импортировать другую библиотеку компонентов, но мне нравится то, что я читал о React-Toolbox в сравнении, он кажется удобным для мобильных устройств, и я хотел бы хотя бы попробовать его.

package.json: (имя, лицензия, описание опущены)

 {
    "scripts": {
        "start": "webpack-dev-server -d --config webpack.dev.config.js --content-base public/ --progress --colors",
        "build": "webpack -d --config webpack.dev.config.js --profile --progress --colors"
    },
    "engines": {
        "node": "0.10.x"
    },
    "dependencies": {
        "autoprefixer": "^6.2.3",
        "babel-core": "^6.4.0",
        "babel-eslint": "^4.1.6",
        "babel-loader": "^6.2.1",
        "babel-plugin-react-transform": "^2.0.0",
        "babel-preset-es2015": "^6.3.13",
        "babel-preset-react": "^6.3.13",
        "classnames": "^2.2.3",
        "css-loader": "^0.9.1",
        "extract-text-webpack-plugin": "^1.0.1",
        "j-toker": "0.0.10-beta3",
        "jquery": "2.2.0",
        "jsuri": "^1.3.0",
        "jsx-loader": "^0.12.2",
        "node-sass": "^3.4.2",
        "normalize.css": "^3.0.3",
        "postcss-loader": "^0.8.0",
        "react": "^0.14.6",
        "react-addons-css-transition-group": "^0.14.6",
        "react-dom": "^0.14.6",
        "react-router": "^1.0.3",
        "react-toolbox": "^0.14.0",
        "react-transform-catch-errors": "^1.0.1",
        "react-transform-hmr": "^1.0.1",
        "sass-loader": "^3.1.2",
        "style-loader": "^0.8.3",
        "toolbox-loader": "0.0.3",
        "webpack": "^1.12.11",
        "webpack-dev-server": "^1.8.0",
        "webpack-hot-middleware": "^2.6.0"
    }
}

веб-пакет.config.js:

const path = require('path');
const webpack = require('webpack');
const autoprefixer = require('autoprefixer');
const ExtractTextPlugin = require('extract-text-webpack-plugin');

module.exports = {
  entry: [
    'webpack-hot-middleware/client',
    './app/client/index.jsx'
  ],
  output: {
    path: path.join(__dirname, 'build'),
    filename: 'react-toolbox.js',
    publicPath: '/'
  },
  resolve: {
    extensions: ['', '.jsx', '.scss', '.js', '.json'],
    modulesDirectories: [
      'node_modules',
      path.resolve(__dirname, './node_modules')
    ]
  },
  module: {
    loaders: [
      {
        test: /(\.js|\.jsx)$/,
        exclude: /(node_modules)/,
        loader: 'babel',
        query: {
           presets:['es2015','react']
        }
      },
      {
        test: /(\.scss|\.css)$/,
        loader: ExtractTextPlugin.extract('style', 'css?sourceMap&modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!postcss!sass?sourceMap!toolbox')
      }
    ]
  },
  toolbox: {
    theme: path.join(__dirname, 'app/client/toolbox-theme.scss')
  },
  postcss: [autoprefixer],
  plugins: [
    new ExtractTextPlugin('react-toolbox.css', { allChunks: true }),
    new webpack.HotModuleReplacementPlugin(),
    new webpack.NoErrorsPlugin(),
    new webpack.DefinePlugin({
      'process.env.NODE_ENV': JSON.stringify('development')
    })
  ]
};

индекс.jsx:

import 'react-toolbox/lib/commons';

import React from 'react';
import ReactDOM from 'react-dom';

import ToolboxApp from 'react-toolbox/lib/app';
import {Button, IconButton} from 'react-toolbox/lib/button';
import Checkbox from 'react-toolbox/lib/checkbox';
import Header from './components/layout/Header';

ReactDOM.render((
    <ToolboxApp>
        <Header />
        <Button className="button" icon="add" floating accent/>
        <IconButton onClick={function(){alert('clicked')}} icon='favorite' accent />
    </ToolboxApp>
), document.getElementById('app'));

person calvin    schedule 14.01.2016    source источник
comment
Из-за новых ограничений на ссылки на вопросы пользователей: Установите: react-toolbox.com/#/install [ 3] Решение проблемы с Github в предложении загрузчика: github.com/react -toolbox/реагировать-toolbox/проблемы/   -  person calvin    schedule 14.01.2016


Ответы (1)


Я скопировал большую часть примера репозитория по адресу https://github.com/react-toolbox/react-toolbox-example в мой каталог app/client в новой ветке. Пришлось немного подкорректировать, и вроде работает. Хотя это не объясняет, где я ошибся с конфигами или файловой структурой, и мне, возможно, придется повторить некоторые усилия, я могу двигаться дальше.

Этот вопрос может выиграть от более подробных предложений о том, как добавить React-Toolbox в существующий проект без замены существующих папок/файлов.

person calvin    schedule 14.01.2016