如何避免Laravel Mix覆盖app.css

时间:2020-02-02 18:05:29

标签: css laravel webpack sass laravel-mix

我运行npm run dev时,style.css的内容将被覆盖 这是我的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而不覆盖它?

2 个答案:

答案 0 :(得分:1)

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')

希望这会有所帮助

答案 1 :(得分:1)

您不需要更改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');

无礼resources/assets/sass/app.scss

...

@import '../style.css';