Laravel Mix,如何在混合时传递变量?
Posted
技术标签:
【中文标题】Laravel Mix,如何在混合时传递变量?【英文标题】:Laravel Mix, how to pass variable while mixing? 【发布时间】:2021-09-23 08:37:16 【问题描述】:所以我有一个 JS 文件,我想使用 Laravel mix
进行混合、复制和压缩;我的webpack.mix.js
文件如下所示:
const mix = require('laravel-mix');
mix.js('resources/js/foo/foo.js', 'public/foo.js');
mix.copy('public/foo.js', 'public/js/foo.js');
mix.version();
问题是foo.js
有一个名为env
的变量,在本地环境中设置为dev
,而我们在生产环境中将其设置为app
。
有没有办法让我自动化?比如我可以在混合文件时根据env
传递变量并设置这个吗?
【问题讨论】:
【参考方案1】:https://laravel-mix.com/extensions/string-replace
npm i laravel-mix-string-replace
安装包
这就是我在混合文件中解决它的方法:
const pixelEnv = process.env.APP_ENV == "local" ? 'dev' : 'app';
mix.js('resources/js/foo/foo.js', 'public/foo.js').stringReplace(
test: /foo.js/,
loader: 'string-replace-loader',
options:
search: 'PIXEL_ENV',
replace: pixelEnv,
);
【讨论】:
以上是关于Laravel Mix,如何在混合时传递变量?的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 5.4 - Mix - 如何运行浏览器实时重新加载
如何在 Laravel 7 中使用 Webpack.mix.js 使用多个 js?
使用 Laravel Mix 时如何包含 webpack 插件?