将 tailwind css 构建为公共站点并将 vuetify 构建为管理仪表板
Posted
技术标签:
【中文标题】将 tailwind css 构建为公共站点并将 vuetify 构建为管理仪表板【英文标题】:Building tailwind css as public site and vuetify as admin dashboard 【发布时间】:2021-01-14 15:38:34 【问题描述】:我正在尝试使用 tailwind css 构建一个站点,并使用单独的 javascript 进行 vuetify,其中 app.js
用于主站点,admin.js
用于管理仪表板以减小大小。我正在使用 laravel-mix
进行代码拆分。这是我当前的配置:
const mix = require('laravel-mix');
const path = require('path');
require('vuetifyjs-mix-extension')
/*
|--------------------------------------------------------------------------
| Mix Asset Management
|--------------------------------------------------------------------------
|
| Mix provides a clean, fluent API for defining some Webpack build steps
| for your Laravel applications. By default, we are compiling the CSS
| file for the application as well as bundling up all the JS files.
|
*/
mix.js('resources/js/app.js', 'public/js')
.postCss('resources/css/app.css', 'public/css', [
require('postcss-import'),
require('tailwindcss'),
])
.babelConfig(
plugins: ['@babel/plugin-syntax-dynamic-import'],
)
.webpackConfig(
output:
chunkFilename: 'js/[name].js',
,
resolve:
alias:
ziggy: path.resolve('vendor/tightenco/ziggy/src/js/route.js'),
,
,
);
mix.js('resources/js/admin.js', 'public/js')
.vuetify('vuetify-loader');
if(mix.inProduction())
mix.version()
.webpackConfig(
output:
chunkFilename: 'js/[name].js?id=[chunkhash]',
);
else
mix.sourceMaps();
这个配置的问题是编译后的app.css
由于某种原因是空的:
DONE Compiled successfully in 43435ms 10:29:10 AM
Asset Size Chunks Chunk Names
/css/app.css 0 bytes /js/admin, /js/app [emitted] /js/admin, /js/app
/js/admin.js 6.52 MiB /js/admin [emitted] /js/admin
/js/app.js 3.28 MiB /js/app [emitted] /js/app
js/0.js 61.1 KiB 0 [emitted]
js/1.js 76.1 KiB 1 [emitted]
js/10.js 346 KiB 10 [emitted]
js/11.js 283 KiB 11 [emitted]
js/12.js 64.9 KiB 12 [emitted]
js/13.js 82.9 KiB 13 [emitted]
js/14.js 65.5 KiB 14 [emitted]
js/15.js 94.3 KiB 15 [emitted]
js/16.js 78.2 KiB 16 [emitted]
js/17.js 53.2 KiB 17 [emitted]
js/18.js 32.8 KiB 18 [emitted]
js/19.js 15.8 KiB 19 [emitted]
js/2.js 202 KiB 2 [emitted]
js/20.js 15.2 KiB 20 [emitted]
js/21.js 17.8 KiB 21 [emitted]
js/22.js 35.3 KiB 22 [emitted]
js/23.js 40.8 KiB 23 [emitted]
js/24.js 140 KiB 24 [emitted]
js/3.js 74.2 KiB 3 [emitted]
js/4.js 2.01 MiB 4 [emitted]
js/5.js 48.6 KiB 5 [emitted]
js/6.js 118 KiB 6 [emitted]
js/7.js 80.1 KiB 7 [emitted]
js/8.js 55.5 KiB 8 [emitted]
js/9.js 42.2 KiB 9 [emitted]
【问题讨论】:
【参考方案1】:我设法根据this github issue 解决了这个问题。我只需要将 entry
添加到 webpack 配置中的 css 文件中,如下所示:
.webpackConfig(
entry:
main: ['./resources/css/app.css']
,
output:
chunkFilename: 'js/[name].js',
,
resolve:
alias:
ziggy: path.resolve('vendor/tightenco/ziggy/src/js/route.js'),
,
,
);
【讨论】:
以上是关于将 tailwind css 构建为公共站点并将 vuetify 构建为管理仪表板的主要内容,如果未能解决你的问题,请参考以下文章
Tailwind CSS:无法将 undefined 或 null 转换为对象 & getProcessedPlugins 不是函数
在 Docker 容器中使用 Laravel Mix 构建完整的 Tailwind 3 app.css 文件
laravel mix --production 不能正确生成tailwind css文件