小编bee*_*ony的帖子

sass-loader extraData/prependData/data 使包大小膨胀

我正在使用 Vue2 和 laravel-mix,我希望我的变量可以全局访问。我最终发现了这个:

mix.webpackConfig({
    module: {
        rules: [
            {
                test: /\.scss$/,
                use: [
                    {
                        loader:  'sass-loader',
                        options: {
                            //this might be "data" or "prependData" depening on your version
                            additionalData: `@import "./resources/js/styles/variables.scss";`
                        }
                    }
                ]
            }
        ]
    }
})
Run Code Online (Sandbox Code Playgroud)

这确实使我的变量可以全局访问,但本质上是将其复制variables.scss到每个 vue 组件中,这极大地膨胀了我的包大小。

我怎样才能防止这种情况发生?

编辑:当导入的文件相对较大时,这只是一个问题。在我的项目中,导入的文件本身导入了一个主题 scss(以访问主题变量),它最终将整个内容复制到我需要变量的任何地方。
我通过在单独的文件中定义自定义变量并在“覆盖变量”文件中使用这些变量来解决此问题,如下所示:
custom-variables.scss

$red: #ff0000;
Run Code Online (Sandbox Code Playgroud)

覆盖变量.scss

import 'theme.scss'; //this bloated my project
import 'custom-variables';

$--theme-red: $red
Run Code Online (Sandbox Code Playgroud)

当我在 vue 组件中需要这种主题颜色时,我只是导入了而custom-variables.scss不是overwriting-variables.scss.
这确实解决了我的膨胀问题,但并没有完全解决问题,custom-variables.scss我的项目中仍然有多个实例,这并不重要,因为它真的很小。所以我仍然很高兴听到其他解决方案!

sass webpack vue.js vuejs2 laravel-mix

5
推荐指数
1
解决办法
6843
查看次数

有状态模式下 Laravel sainttum 登录会话超时

在 Sanctum 有状态模式下,是否可以在一段时间后注销用户?
例如,用户将在 4 小时后或一天结束时注销。

我知道您可以设置 API 令牌的到期日期,但我想在有状态模式(基于会话的身份验证)下经过一定时间后注销用户。

需要澄清的是,任何用户都应该在一段时间后注销。就像您在银行应用程序或其他安全性更高的网站中看到的那样。

authentication laravel laravel-sanctum laravel-fortify

0
推荐指数
1
解决办法
3011
查看次数