如何避免 Laravel 混合覆盖 app.css

How to avoid Laravel Mix overriding app.css

style.css 的内容每次被覆盖 运行 npm run dev 这是我的 webpack 文件

let mix = require('laravel-mix');

/*
 |--------------------------------------------------------------------------
 | 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/assets/js/app.js', 'public/js')
   .sass('resources/assets/sass/app.scss', 'public/css');

 mix.styles(['resources/assets/style.css'], 'public/css/app.css');

有什么方法可以附加 css 而不是覆盖它?

app 是 webpack 使用的默认名称

所以要么改变 .sass('resources/assets/sass/app.scss', 'public/css') -> .sass('resources/assets/sass/app.scss', 'public/css/newfile.css')

mix.styles(['resources/assets/style.css'], 'public/css/app.css') -> mix.styles(['resources/assets/style.css'], 'public/css/styles.css')

编辑:如果您需要一个文件中的所有内容

mix.sass('resources/assets/sass/app.scss', 'public/css/app.css')
mix.styles(['public/css/app.css', 'resources/assets/style.css'], 'public/css/app.css')

希望对您有所帮助

您不需要更改您的 webpack 文件。

除了导入 .sass.scss 文件外,Sass 还可以导入普通的旧 .css 文件。唯一的规则是导入不能显式包含 .css 扩展名,因为它用于指示普通的 CSS @import.

Webpack

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

Sass (resources/assets/sass/app.scss)

...

@import '../style.css';