WebPack 5与tailwindcss,PostCSS -Loader -WordPress不使用
我正在尝试构建一个WebPack配置,该配置将transpiles sass并利用Postcss,Precs,AutoPrefixer插件。
在研究并尝试了各种解决方案后,我想出了以下设置:
webpack.config.js
const path = require('path');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
const CssMinimizerPlugin = require("css-minimizer-webpack-plugin");
const TerserPlugin = require("terser-webpack-plugin");
const postcssPresetEnv = require('postcss-preset-env');
// JS Directory path.
const JS_DIR = path.resolve(__dirname, 'src/js')
const IMG_DIR = path.resolve(__dirname, 'src/img')
const BUILD_DIR = path.resolve(__dirname, 'build')
const entry = {
main: JS_DIR + '/main.js'
}
const output = {
path: BUILD_DIR,
filename: 'js/[name].js'
}
const plugins = (argv) => [
new CleanWebpackPlugin({
cleanStaleWebpackAssets: ('production' === argv.mode)
}),
new MiniCssExtractPlugin({
filename: 'css/[name].css'
}),
new CssMinimizerPlugin(),
]
const rules = [
{
test: /\.js$/,
include: [JS_DIR],
exclude: /node_modules/,
use: 'babel-loader'
},
{
test: /\.scss$/,
exclude: /node_modules/,
use: [
MiniCssExtractPlugin.loader,
'css-loader',
'postcss-loader',
'sass-loader',
],
},
{
test: /\.(png|jpg|jpeg|svg|gif|ico)$/,
generator: {
filename: '[path][name].[ext]',
},
use: [
{
loader: 'file-loader',
options: {
name: '[path][name].[ext]',
publicPath: 'production' === process.env.NODE_ENV ? '../' : '../../'
},
},
],
},
{
test: /\.(ttf|otf|eot|svg|woff(2)?)(\?[a-z0-9]+)?$/,
exclude: [ IMG_DIR, /node_modules/ ],
generator: {
filename: '[path][name].[ext]',
},
use: [
{
loader: 'file-loader',
options: {
name: '[path][name].[ext]',
publicPath: 'production' === process.env.NODE_ENV ? '../' : '../../'
}
}
]
}
]
module.exports = (env, argv) => ({
entry: entry,
output: output,
devtool: 'source-map',
module: {
rules: rules
},
optimization: {
minimize: true,
minimizer: [
new CssMinimizerPlugin({
minify: [
CssMinimizerPlugin.cssnanoMinify,
CssMinimizerPlugin.cleanCssMinify
]
}),
new TerserPlugin({
minify: TerserPlugin.uglifyJsMinify,
parallel: true,
}),
]
},
plugins: plugins(argv),
externals: {
jquery: 'jQuery'
}
})
在WordPress中使用TailWindCSS运行WebPack 5时会出现错误。 缺少一些东西,任何人都可以提供帮助。 我已经更新了一些软件包,但仍然遇到错误。
错误
> ERROR in ./src/sass/main.scss
> Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):
> HookWebpackError: Module build failed (from ./node_modules/postcss-loader/dist/cjs.js):
> TypeError: Cannot read property 'raws' of undefined
> Error: Module build failed (from
> ./node_modules/postcss-loader/dist/cjs.js): TypeError: Cannot read
> property 'raws' of undefined
I'm trying to build a webpack config that transpiles sass and utilizes the postcss, precss, autoprefixer plugin.
Having researched and tried out various solutions to this, I have come up with the following setup:
webpack.config.js
const path = require('path');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
const CssMinimizerPlugin = require("css-minimizer-webpack-plugin");
const TerserPlugin = require("terser-webpack-plugin");
const postcssPresetEnv = require('postcss-preset-env');
// JS Directory path.
const JS_DIR = path.resolve(__dirname, 'src/js')
const IMG_DIR = path.resolve(__dirname, 'src/img')
const BUILD_DIR = path.resolve(__dirname, 'build')
const entry = {
main: JS_DIR + '/main.js'
}
const output = {
path: BUILD_DIR,
filename: 'js/[name].js'
}
const plugins = (argv) => [
new CleanWebpackPlugin({
cleanStaleWebpackAssets: ('production' === argv.mode)
}),
new MiniCssExtractPlugin({
filename: 'css/[name].css'
}),
new CssMinimizerPlugin(),
]
const rules = [
{
test: /\.js$/,
include: [JS_DIR],
exclude: /node_modules/,
use: 'babel-loader'
},
{
test: /\.scss$/,
exclude: /node_modules/,
use: [
MiniCssExtractPlugin.loader,
'css-loader',
'postcss-loader',
'sass-loader',
],
},
{
test: /\.(png|jpg|jpeg|svg|gif|ico)$/,
generator: {
filename: '[path][name].[ext]',
},
use: [
{
loader: 'file-loader',
options: {
name: '[path][name].[ext]',
publicPath: 'production' === process.env.NODE_ENV ? '../' : '../../'
},
},
],
},
{
test: /\.(ttf|otf|eot|svg|woff(2)?)(\?[a-z0-9]+)?$/,
exclude: [ IMG_DIR, /node_modules/ ],
generator: {
filename: '[path][name].[ext]',
},
use: [
{
loader: 'file-loader',
options: {
name: '[path][name].[ext]',
publicPath: 'production' === process.env.NODE_ENV ? '../' : '../../'
}
}
]
}
]
module.exports = (env, argv) => ({
entry: entry,
output: output,
devtool: 'source-map',
module: {
rules: rules
},
optimization: {
minimize: true,
minimizer: [
new CssMinimizerPlugin({
minify: [
CssMinimizerPlugin.cssnanoMinify,
CssMinimizerPlugin.cleanCssMinify
]
}),
new TerserPlugin({
minify: TerserPlugin.uglifyJsMinify,
parallel: true,
}),
]
},
plugins: plugins(argv),
externals: {
jquery: 'jQuery'
}
})
Getting error while running webpack 5 with tailwindcss in Wordpress.
Something is missing, anyone can help, please.
I have updated some packages but still getting an error.
Errors
> ERROR in ./src/sass/main.scss
> Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):
> HookWebpackError: Module build failed (from ./node_modules/postcss-loader/dist/cjs.js):
> TypeError: Cannot read property 'raws' of undefined
> Error: Module build failed (from
> ./node_modules/postcss-loader/dist/cjs.js): TypeError: Cannot read
> property 'raws' of undefined
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论