gpt4 book ai didi

javascript - 无法使用 webpack 将 LESS 加载到页面中

转载 作者:搜寻专家 更新时间:2023-11-01 05:00:21 25 4
gpt4 key购买 nike

我似乎无法使用 webpack 将我的 LESS 加载到我的页面中

这是我的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
})
]
}
};

我的 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'))
});

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;

项目结构

enter image description here

最佳答案

除了将 ExtractTextPlugin 的输出加载到您的 HTML 之外,您似乎一切都很好。

当您使用 ExtractTextPlugin 时,webpack 会将 cssless 打包到一个单独的 bundle.css 文件中您必须手动将其加载到您的应用程序中。 您从控制台运行webpack CLI 之后,您可以在webpackConfig.output.path 文件夹内的一个文件夹中找到这个包。

通常我只在生产 模式下使用ExtractTextPlugin。在开发模式下,我只使用style-loader,这样我就可以利用hot-module-replacement,所以我不需要运行webpack CLI 每次我改变样式(我知道我可以使用 webpack 中间件,但我不想)。

One of my dev webpack configs

One of my prod webpack configs

编辑这是你的 index.less 的错字文件。我根据拉取请求为您修复了这个问题 :)

编辑 2好的,这是我的最后一次尝试:

尝试将此添加到您的 wepback 配置文件中:

{test: /\.css/, loader: 'style-loader!css-loader'},

也许,只是也许,LESS 加载器会输出一个需要测试的临时 CSS 文件。我不知道,我会试试的。

然后,为了将测试减少到最低限度,这就是我要做的:

  • 停止在 index.less 中导入。我的意思是,将所有内容都放入 index.less 中,看看会发生什么。
  • 添加 CSS 测试后.. 尝试用常规 CSS 替换 LESS,看看是否可行。
  • 尝试在您的 webpack 配置中指定一个 publicPath:https://github.com/webpack/docs/wiki/configuration

关于javascript - 无法使用 webpack 将 LESS 加载到页面中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31909459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com