我遇到了Laravel Elixir .version('xxxxxx.js')
的问题。出于某种原因,似乎我不能将.version
与js文件一起使用,或者除了.css
之外,甚至可以使用多个版本化的js文件。
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');
});
我的laravel-elixir配置如下:
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: [] }
};
答案 0 :(得分:4)
我遇到了同样的问题。似乎version()
会在每次调用时覆盖build
文件夹。
您需要在结尾处使用version
只调用一次所有文件,如下所示:
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'
])
});
答案 1 :(得分:1)
我的问题有2个问题,BeS的解决方案确实有效但在我连接多个供应商文件时又造成了另一个问题:
我的解决方案 - 结合BeS的解决方案,但修改为链接确保所有脚本和更少等等的方法...在调用.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']);
});
答案 2 :(得分:1)
我也遇到版本控制问题,发现目前有bug with elixir versioning。 (注意:在撰写本文时,Elixir版本< = v0.14.0)
看起来在连接大量文件时(或者更可能是输出文件很大),然后它将不会使用其余文件进行版本化。
看起来你可以单独运行gulp version
,它们会被版本化。如果您遇到此问题,则gulp
或gulp watch
将无法执行此操作。
这是我的gulp文件, vendor.js 正在编译但没有版本化。它甚至不是最后一个版本的文件:
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'
]);
});
之后运行gulp version
将对其进行版本化。
这似乎是固定的> = v0.14.2