2015-05-02 26 views
3

好吧所以(新本):入门触控笔装载机的WebPack

我只是说我stylus-loaderstyle-loader(由stylus-loader推荐)和装载​​机{ test: /\.styl$/, loader: 'style-loader!css-loader!stylus-loader' }到的WebPack配置。现在在我的Main.js文件中,我添加了var css = require('!css!stylus!./Main.styl');。那么,我现在应该在html中看到编译后的CSS吗?不知道我是否得到这个权利。

webpack.config.js

webpackConfig = { 
    context: __dirname, 
    entry: { 
     app: ['webpack/hot/dev-server','./index.js'] 
    }, 
    output: { 
     path: __dirname, 
     filename: 'bundle.js' 
    }, 
    module: { 
     loaders: [ 
      { test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader'}, 
      { test: /\.styl$/, loader: 'style-loader!css-loader!stylus-loader' } 
     ] 
    } 
} 

module.exports = webpackConfig; 

index.js

var React = require('react'); 
var Main = require('./App/Components/Main'); 

class App extends React.Component{ 
    render(){ 
     return (
      <Main /> 
     ) 
    } 
} 

React.render(<App />, document.getElementById('main')); 

Main.js

'use strict' 

import React from 'react'; 
import ReactCanvas from 'react-canvas'; 
var css = require('!css!stylus!./Main.styl'); 

var { 
    Surface 
} = ReactCanvas; 

class Main extends React.Component{ 
    constructor() { 
     super(); 
     this.size = document.getElementById('main').getBoundingClientRect() 
    } 

    render() { 
     return (
      <Surface top={0} left={0} width={this.size.width} height={this.size.height}> 
      </Surface> 
     ) 
    } 
} 

module.exports = Main 

的index.html

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>React Canvas</title> 
</head> 
<body> 


    <header> 
     <h1>React Canvas</h1> 
    </header> 

    <div id="main"></div> 

    <script src="http://localhost:8080/webpack-dev-server.js"></script> 
    <script src="bundle.js"></script> 
</body> 
</html> 

回答

3

您可以

var css = require('./Main.styl'); 

感谢您的设置更换

var css = require('!css!stylus!./Main.styl'); 

CSS将被转换为JavaScript并默认包含在JavaScript包中。

我希望这会有所帮助。

1

检查我的配置

https://github.com/crapthings/postcss-test

https://github.com/crapthings/postcss-test/blob/master/webpack.config.js

var poststylus = require('poststylus') 

module.exports = { 
    cache: true, 
    context: __dirname + '/app', 
    entry: './index.js', 
    output: { 
     path: __dirname + '/app', 
     filename: 'bundle.js' 
    }, 
    module: { 
     loaders: [ 
      { test: /\.js$/, loader: 'babel', exclude: /node_modules/, query: { presets: ['es2015'], plugins: ['add-module-exports'] } }, 
      { test: /\.html$/, loader: 'html', exclude: /node_modules/ }, 
      { test: /\.css$/, loader: 'style!css!postcss', exclude: /node_modules/ }, 
      { test: /\.styl$/, loader: 'style!css!stylus', exclude: /node_modules/ } 
     ] 
    }, 
    stylus: { 
     use: [poststylus(['autoprefixer', 'postcss-short', 'postcss-sorting', 'postcss-cssnext', 'rucksack-css'])] 
    } 
} 

https://github.com/crapthings/postcss-test/blob/master/app/index.js

require('style!./test.styl') 

我可以用内嵌样式手写笔和postcss工作

,但我无法弄清楚如何使一个bundle.css到

<link rel=stylesheet /> 
+0

复制和粘贴代码不好:在拼写错误的地方拼写错误'exclude'。 –

+0

我现在使用早午餐 – crapthings

+0

错误:无法解析模块'样式' –

0

你拼错“排除”与“exculde”。

而且BTW(https://github.com/seaneking/poststylus):

“不幸的PostStylus使用回传后处理CSS不接受的回调,所以直到这个bug修补上游PostStylus无法与异步PostCSS工作触控笔末端事件处理“。

我必须为使用LostCSS(PostCSS网格)制作单独的文件,这些文件只是使用网格导入(每个组件都有它自己的style.styl文件和lost.css文件)。为我工作。

相关问题