Reputation: 13781
So I have a JS file that I want to mix and copy and compress using Laravel mix
; my webpack.mix.js
file looks like so:
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();
The thing is that foo.js
has a variable called env
, set to dev
on local envs, and we set it to app
on production.
Is there a way I can automate this? For example, can I pass the variable according to the env
while mixing the file and set this?
Upvotes: 3
Views: 1108
Reputation: 13781
https://laravel-mix.com/extensions/string-replace
npm i laravel-mix-string-replace
to install the package
This is how I solved it in mix file:
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,
}
});
Upvotes: 3