带有 webpack css-loader 的 Sourcemaps
Sourcemaps with webpack css-loader
我正在努力让 sourcemaps 与 css-loader 一起工作。
控制台输出:
css-loader 的文档说了什么:
SourceMaps
To include SourceMaps set the sourceMap query param.
require("css-loader?sourceMap!./file.css")
我的webpack.config
var webpack = require('webpack')
module.exports = {
entry: './src/client/js/App.js',
output: {
path: './public',
filename: 'bundle.js',
publicPath: '/'
},
plugins: process.env.NODE_ENV === 'production' ? [
new webpack.optimize.DedupePlugin(),
new webpack.optimize.OccurrenceOrderPlugin(),
new webpack.optimize.UglifyJsPlugin()
] : [],
module: {
loaders: [
{ test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader?presets[]=es2015&presets[]=react' },
{ test: /\.scss$/, loaders: ['style', 'css', 'sass']},
{ test: /\.css$/, loader: "style-loader!css-loader?sourceMap!./file.css" },
{ test: /\.png$/, loader: "url-loader?limit=100000" },
{ test: /\.jpg$/, loader: "file-loader" }
]
}
}
我如何包含 sass
import React from 'react'
import { render } from 'react-dom'
import { Router, browserHistory } from 'react-router'
import routes from './routes'
import '../scss/main.scss'
render(
<Router routes={routes} history={browserHistory}/>,
document.getElementById('app')
)
通过 webpack
启用 source-maps
...
devtool: 'source-map'
...
您可能还想为 Sass-文件启用源映射
module: {
loaders: [
...
{
test: /\.scss$/,
loaders: [
'style-loader',
'css-loader?sourceMap',
'sass-loader?sourceMap'
]
}, {
test: /\.css$/,
loaders: [
"style-loader",
"css-loader?sourceMap"
]
},
...
]
}
使用 extract text plugin 将您的 css 提取到文件中。
...
plugins: [
...
new ExtractTextPlugin('file.css')
]
...
您需要在 webpack 配置中设置一些属性。
{
output: {
...
},
debug: true, // switches loaders into debug mode
devtool: 'eval-cheap-module-source-map', // or one of the other flavors, not entirely sure if this is required for css source maps
...
}
webpack 开发服务器默认没有调试。除了在您的配置中设置它,您还可以通过 CLI 将 -d 或 --debug 标志传递给 webpack-dev-server
。
我正在努力让 sourcemaps 与 css-loader 一起工作。
控制台输出:
css-loader 的文档说了什么:
SourceMaps
To include SourceMaps set the sourceMap query param.
require("css-loader?sourceMap!./file.css")
我的webpack.config
var webpack = require('webpack')
module.exports = {
entry: './src/client/js/App.js',
output: {
path: './public',
filename: 'bundle.js',
publicPath: '/'
},
plugins: process.env.NODE_ENV === 'production' ? [
new webpack.optimize.DedupePlugin(),
new webpack.optimize.OccurrenceOrderPlugin(),
new webpack.optimize.UglifyJsPlugin()
] : [],
module: {
loaders: [
{ test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader?presets[]=es2015&presets[]=react' },
{ test: /\.scss$/, loaders: ['style', 'css', 'sass']},
{ test: /\.css$/, loader: "style-loader!css-loader?sourceMap!./file.css" },
{ test: /\.png$/, loader: "url-loader?limit=100000" },
{ test: /\.jpg$/, loader: "file-loader" }
]
}
}
我如何包含 sass
import React from 'react'
import { render } from 'react-dom'
import { Router, browserHistory } from 'react-router'
import routes from './routes'
import '../scss/main.scss'
render(
<Router routes={routes} history={browserHistory}/>,
document.getElementById('app')
)
通过 webpack
启用 source-maps... devtool: 'source-map' ...
您可能还想为 Sass-文件启用源映射
module: { loaders: [ ... { test: /\.scss$/, loaders: [ 'style-loader', 'css-loader?sourceMap', 'sass-loader?sourceMap' ] }, { test: /\.css$/, loaders: [ "style-loader", "css-loader?sourceMap" ] }, ... ] }
使用 extract text plugin 将您的 css 提取到文件中。
... plugins: [ ... new ExtractTextPlugin('file.css') ] ...
您需要在 webpack 配置中设置一些属性。
{
output: {
...
},
debug: true, // switches loaders into debug mode
devtool: 'eval-cheap-module-source-map', // or one of the other flavors, not entirely sure if this is required for css source maps
...
}
webpack 开发服务器默认没有调试。除了在您的配置中设置它,您还可以通过 CLI 将 -d 或 --debug 标志传递给 webpack-dev-server
。