使用Webpack 4将less和sass文件捆绑到单个scss文件中
我开发了一个用于其他项目的组件库,我使用了使用较少的Ant Design库,我在我的组件项目中使用了Sass,我试图将所有的less和Sass文件捆绑到一个单独的Sass文件中,但是我在Sass中有一些变量,我想在其他项目中使用,所以我不想在scss中转换最终的文件 我已经试过使用,但我注意到webpack总是用css转换我的文件 这是我的网页配置:使用Webpack 4将less和sass文件捆绑到单个scss文件中,webpack,sass,less,Webpack,Sass,Less,我开发了一个用于其他项目的组件库,我使用了使用较少的Ant Design库,我在我的组件项目中使用了Sass,我试图将所有的less和Sass文件捆绑到一个单独的Sass文件中,但是我在Sass中有一些变量,我想在其他项目中使用,所以我不想在scss中转换最终的文件 我已经试过使用,但我注意到webpack总是用css转换我的文件 这是我的网页配置: const path = require('path'); const CleanWebpackPlugin = require('clean-w
const path = require('path');
const CleanWebpackPlugin = require('clean-webpack-plugin');
const nodeExternals = require('webpack-node-externals');
const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
module.exports = {
mode: 'development',
entry: [path.join(__dirname, 'src/index.tsx')],
externals: [nodeExternals()],
module: {
rules: [
{
test: /\.tsx?/,
use: [
'babel-loader',
{
loader: 'ts-loader',
options: {
// disable type checker - we will use it in fork plugin
transpileOnly: true
}
}
]
},
{
test: /.svg$/,
use: [
{
loader: '@svgr/webpack',
options: {
icon: true,
svgo: true,
replaceAttrValues: {
'#5E5854': 'currentColor'
}
}
}
]
},
{
test: /\.(scss|sass|css)$/,
use: [
MiniCssExtractPlugin.loader,
{ loader: 'css-loader', options: { url: false, sourceMap: true } },
{
loader: 'sass-loader',
options: { sourceMap: true }
}
]
},
{
test: /\.(less)$/,
use: [
MiniCssExtractPlugin.loader,
{ loader: 'css-loader', options: { url: false, sourceMap: true } },
{ loader: 'less-loader', options: { sourceMap: true, javascriptEnabled: true, modifyVars: require('./src/theme/override/vars') } }
]
},
{
test: /\.(woff(2)?|ttf|eot)$/,
include: path.resolve(__dirname, '../src/theme/fonts'),
use: [
{
loader: 'file-loader',
options: {
name: '[name].[ext]',
outputPath: 'fonts/'
}
}
]
},
{
test: /\.png$/,
include: path.resolve(__dirname, '../src/theme/assets'),
use: [
{
loader: 'file-loader',
options: {
name: '[name].[ext]',
outputPath: 'assets/'
}
}
]
}
]
},
resolve: {
extensions: ['.js', '.ts', '.tsx'],
alias: {
'@root': path.join(__dirname, 'src')
}
},
output: {
path: path.resolve(__dirname, './lib'),
filename: 'index.js',
libraryTarget: 'commonjs2'
},
plugins: [
new CleanWebpackPlugin(),
new ForkTsCheckerWebpackPlugin({
useTypescriptIncrementalApi: true,
tslint: true
}),
new MiniCssExtractPlugin({
filename: 'styles2.css',
chunkFilename: '[id].css'
})
]
};