Lio*_*cer 4 javascript less reactjs webpack
我似乎无法LESS使用webpack将我加载到我的页面中
这是我的 webpack.config.js
var webpack = require('webpack');
var ExtractTextPlugin = require("extract-text-webpack-plugin");
module.exports = {
entry: [
'./app/index.js'
],
output: {
path: './public/js',
filename: 'main.js'
},
devtool: 'source-map',
module: {
loaders: [
{ test: /\.json$/, loader: 'json-loader' },
{ test: /\.jsx$/, loader: 'jsx-loader' },
{ test: /\.es6$/, exclude: /node_modules/, loader: 'babel-loader?stage=0&optional=runtime'},
{ test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader?stage=0&optional=runtime'},
{ test: /\.less$/, exclude: /node_modules/, loader: ExtractTextPlugin.extract("style-loader", "css-loader!less-loader") }
],
plugins: [
new ExtractTextPlugin('style.css', {
allChunks: true
})
]
}
};
Run Code Online (Sandbox Code Playgroud)
我的app/index.js包含:
'use strict';
let stylesheet = require('./styles/index.less');
let routes = require('./routes.js');
let Router = require('react-router');
let { Handler } = Router;
Router.run(routes, Router.HistoryLocation, function(root, state) {
React.render(<Handler query={ state } path={ state.pathname }/>, document.getElementById('app'))
});
Run Code Online (Sandbox Code Playgroud)
var stylesheet应该采取所有buttons.less因为它包含@import "buttons.less";
这是reactjs我尝试加载的组件:
var React = require('react');
var { RouteHandler } = require('react-router');
var UserMenu = React.createClass({
render() {
return (
<div>
<div id="login-btn">
<a href="/login">
<button type="button" className="btn btn-embossed btn-primary">Login</button>
</a>
</div>
<div id="signup-btn">
<a href="/signup">
<button type="button" className="btn btn-embossed btn-primary">Sign up</button>
</a>
</div>
</div>
);
}
})
var Layout = React.createClass({
render() {
console.log("layout props");
console.log(this.props);
return (
<div id="review-web">
<header className="header">
<UserMenu />
</header>
<div>
<RouteHandler path={ this.props.path } />
</div>
</div>
)
}
});
module.exports = Layout;
Run Code Online (Sandbox Code Playgroud)
项目结构
And*_*ena 10
除了将输出加载ExtractTextPlugin到HTML中之外,您似乎做得很好.
当您使用ExtractTextPlugin,它的WebPack将捆绑css,less在一个单独的bundle.css,你必须手动加载到你的应用程序文件.之后您运行webpack从您的CLI命令行,你可以期望找到这个包里面的文件夹中的webpackConfig.output.path文件夹中.
通常我ExtractTextPlugin只在生产模式下使用.在开发模式中,我只是使用style-loader,所以我可以利用它hot-module-replacement,因此我不需要webpack每次更改样式时都运行CLI(我知道我可以使用webpack-middleware,但我不想) .
编辑 这是index.less 文件的拼写错误.我在拉取请求中为你修复了:)
编辑2 好的,这是我的最后一次尝试:
尝试将此添加到您的wepback配置文件中:
{test: /\.css/, loader: 'style-loader!css-loader'},
Run Code Online (Sandbox Code Playgroud)
也许,只是可能,LESS加载器输出一个临时CSS文件,也需要进行测试.我不知道,我会尝试一下.
然后,这就是我要做的,为了减少测试的最小值:
| 归档时间: |
|
| 查看次数: |
10693 次 |
| 最近记录: |