ami*_*mik 6 css sass source-maps webpack
我已将 webpack 配置为转译 scss -> css,但 webpack 生成的 sourcemap 无法解析 scss @import。
webpack.config.js:
const path = require('path');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const outputPath = path.join(__dirname, 'dist');
module.exports = {
devtool: 'source-map',
entry: ['./src/main.scss'],
target: 'web',
output: {
filename: 'js/[name].bundle.js',
path: outputPath
},
module: {
rules: [
{ // sass / scss loader for webpack
test: /\.(sass|scss)$/,
loader: ExtractTextPlugin.extract([
{
loader: 'css-loader',
options: {
url: false,
import: true,
minimize: true,
sourceMap: true,
}
},
'sass-loader'
])
},
]
},
plugins: [
new ExtractTextPlugin({ // define where to save the file
filename: 'css/[name].bundle.css',
allChunks: true,
})
]
};
Run Code Online (Sandbox Code Playgroud)
主文件:
@import 'foo';
Run Code Online (Sandbox Code Playgroud)
_foo.scss:
h1 { color: red; }
Run Code Online (Sandbox Code Playgroud)
但是,在 Chrome 开发工具中,我看到了对main.scss我期望引用的位置的引用_foo.scss- 请参见下面的屏幕截图:
当您处于开发模式时,不应使用 extractTextPlugin。请为开发和生产模式进行额外的配置。在生产中使用 extractTextPlugin 很好,但在开发模式下它不是必需的,并且可能导致其他功能不起作用。所以改用样式加载器。
另外 - 我不确定这是否能解决您的问题 - 尝试在 css 加载器上使用 importLoaders 道具。在这里查看更多信息:
https://github.com/webpack-contrib/css-loader#importloaders
const path = require('path');
const outputPath = path.join(__dirname, 'dist');
module.exports = {
devtool: 'source-map',
entry: ['./src/main.scss'],
target: 'web',
output: {
filename: 'js/[name].bundle.js',
path: outputPath
},
module: {
rules: [
{ // sass / scss loader for webpack
test: /\.(sass|scss)$/,
loader: [
{
loader: 'style-loader',
options: {
sourceMap: true
}
},
{
loader: 'css-loader',
options: {
url: false,
import: true,
minimize: true,
sourceMap: true,
importLoaders: 1,
}
},
{
loader: 'sass-loader',
options: {
sourceMap: true
}
}
]
},
]
}
};
Run Code Online (Sandbox Code Playgroud)
你在sass-loader那里,用以下命令切换它:
{
loader: 'sass-loader',
options: {
sourceMap: true
}
}
Run Code Online (Sandbox Code Playgroud)
那会起作用的。
| 归档时间: |
|
| 查看次数: |
1276 次 |
| 最近记录: |