version - incluir - laravel styles
Laravel Elixir-No se puede usar.version con css y mĂșltiples archivos js (3)
Hubo 2 problemas con mi pregunta y la solución de BeS funcionó, pero creó otro problema cuando concatené varios archivos de proveedor:
- mix.less y mix.scripts se llaman asincrónicamente. Estaba pensando en eso procesalmente.
- Como @BeS mencionó, necesito llamar a la versión una vez al final.
Mi solución - Combinación de la solución de BeS, pero modificada para encadenar los métodos, asegurando que todos los scripts y menos, etc ... hayan sido concatenados antes de llamar .version
:
elixir(function(mix) {
mix.less(''app.less'')
.scripts([
''jquery/dist/jquery.js'',
''other.js'',
''another.js''
], ''public/js/vendor.js'',''resources/assets/bower_components/'')
.scripts([''app.js'',''app2.js''], ''public/js/app.js'', ''resources/assets/scripts'')
.version([''public/css/app.css'', ''public/js/app.js'', ''public/js/vendor.js'']);
});
Tengo problemas con Laravel Elixir .version(''xxxxxx.js'')
. Por alguna razón, parece que no puedo usar .version
con archivos js o además de .css
o incluso tengo varios archivos js versionados.
elixir(function(mix) {
/**
* My Less
*/
mix.less(''app.less'').version(''public/css/app.css'');
/**
* Vendor Scripts
*/
mix.scripts([
''jquery/dist/jquery.js''
], ''public/js/vendor.js'', ''resources/assets/bower_components/'').version(''public/js/vendor.js'');
/**
* My Scripts
*/
mix.scripts([''app.js'',''app2.js''], ''public/js/app.js'', ''resources/assets/scripts'').version(''public/js/vendor.js'');
});
Mi configuración de laravel-elixir es la siguiente:
var config = {
production: !! util.env.production,
srcDir: ''app'',
assetsDir: ''resources/assets/'',
cssOutput: ''public/css'',
jsOutput: ''public/js'',
bowerDir: ''resources/assets/bower_components'',
tasks: [],
watchers: { default: {} },
duplicate: [],
concatenate: { css: [], js: [] }
};
Me encuentro con el mismo problema. Parece que la version()
superpone a la carpeta de build
en cada llamada.
Solo debe llamar a la version
al final con todos los archivos, como los siguientes:
elixir(function(mix) {
/**
* My Less
*/
mix.less(''app.less'')
/**
* Vendor Scripts
*/
.scripts([
''jquery/dist/jquery.js''
], ''public/js/vendor.js'', ''resources/assets/bower_components/'')
/**
* My Scripts
*/
.scripts([''app.js'',''app2.js''], ''public/js/app.js'', ''resources/assets/scripts'')
/**
* My Versioning
*/
.version([
''public/css/app.css'',
''public/js/vendor.js'', // BTW you are calling version twice on this file
''public/js/app.js''
])
});
También tuve un problema con el control de versiones y descubrí que actualmente hay un error con el control de versiones del elixir . (nota: en el momento de escribir, versión de Elixir <= v0.14.0)
Parece que al concatenar muchos archivos (o más probablemente, el archivo de salida es grande), no se versionará con el resto de los archivos.
Parece que puedes ejecutar la gulp version
separado y obtendrán una gulp version
. Si está experimentando este problema, entonces gulp
o gulp watch
no lo hará.
Aquí está mi archivo gulp, vendor.js estaba siendo compilado pero no versionado. Ni siquiera es el último archivo que se está versionando:
var elixir = require(''laravel-elixir'');
elixir(function(mix) {
mix.sass(''app.scss'')
.scripts([
''react/react-with-addons.min.js'',
''jquery/dist/jquery.min.js'',
''bootstrap-sass-official/assets/javascripts/bootstrap.js''
], ''public/js/vendor.js'', ''resources/assets/bower'')
.scripts([''app.js''], ''public/js/app.js'', ''resources/assets/js'')
.version([
''css/app.css'',
''js/vendor.js'',
''js/app.js''
]);
});
Ejecutar la gulp version
luego lo versionará.
Actualizar:
Esto parece ser fijo> = v0.14.2