Laravel混音,混音时如何传递变量?
Laravel Mix, how to pass variable while mixing?
所以我有一个 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
传变量然后设置这个吗?
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,
}
});
所以我有一个 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
传变量然后设置这个吗?
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,
}
});