gpt4 book ai didi

laravel - Nwidart Laravel 模块使用 webpack 和 mix 管理资源。

转载 作者:行者123 更新时间:2023-12-02 21:02:41 26 4
gpt4 key购买 nike

我正在使用 nwidart 的 laravel 模块为 laravel 应用程序创建单独的模块,每个模块都包含该模块的代码。目前我正在尝试将与每个模块相关的css文件放入单独的app.scss中,然后使用webpack将.scss移动到公共(public)目录中。

我通过为每个将 css 移动到主公共(public)目录的模块包含单独的 webpack.mix 文件来实现这一点。然而,我的问题是,为了实现这一点,每次我想更新 css 时,我都必须在每个模块文件夹的根目录中运行命令 npm run dev 。有没有更简单的方法来运行应用程序中的所有模块 webpack.mix.js 文件,还是我每次都必须手动执行?

这是我正在使用的模块包https://github.com/nWidart/laravel-modules

这里还有一个目录外观的示例

--应用程序

----模块

------博客-> webpack.mix.js

--------资源

------------ Assets

-------------Sass -> app.scss

这里还有博客模块的 webpack.mix.js 副本

const { mix } = require('laravel-mix');
require('laravel-mix-merge-manifest');

mix.setPublicPath('../../public').mergeManifest();

mix.sass( __dirname + '/Resources/assets/sass/app.scss', 'css/blog.css');

if (mix.inProduction()) {
mix.version();
}

最佳答案

我在使用 nwidart 模块时遇到了这个问题。要解决这个问题,请在主 weppack.mix.js 中编写以下代码:

const mix = require('laravel-mix');
const fs = require('fs');
const path = require('path');

/*
|--------------------------------------------------------------------------
| Mix Asset Management
|--------------------------------------------------------------------------
|
| Mix provides a clean, fluent API for defining some Webpack build steps
| for your Laravel application. By default, we are compiling the Sass
| file for the application as well as bundling up all the JS files.
|
*/

mix.js('resources/js/app.js', 'public/js')
.sass('resources/sass/app.scss', 'public/css');

const moduleFolder = './Modules';

const dirs = p => fs.readdirSync(p).filter(f => fs.statSync(path.resolve(p,f)).isDirectory())

let modules = dirs(moduleFolder);

cssArray = [];
cssArray.push('public/css/app.css');

modules.forEach(function(m){
let js = path.resolve(moduleFolder,m,'Resources','assets','js', 'app.js');
mix.js(js,'public/js');
let scss = path.resolve(moduleFolder,m,'Resources','assets','sass', 'app.scss');
mix.sass(scss,'public/css/'+m+'.css');
cssArray.push('public/css/'+m+'.css');
});

mix.styles(cssArray, 'public/css/all.css');

关于laravel - Nwidart Laravel 模块使用 webpack 和 mix 管理资源。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52367692/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com