可以遵循哪些最佳实践来缩小 JSF 应用程序中的 js 和 css?
我想在YUI压缩器中使用maven-minify插件在构建时压缩JS和css.我的JS和CSS保存在不同的文件夹中.例如.'X'JS文件存在于一个文件夹中,其余文件存在于不同的文件夹中.CSS文件的情况也是如此.
另外我想知道,如果文件名从jsFileName.js变为类似jsFileName-min.js的话,如何在JSP中更改JS和CSS 的引用
请让我知道如何使用此插件,因为我对此完全陌生.
http://closure-compiler.appspot.com/home
(function(){
var somevar = 'somevar';
this.each(function(){
var minify_var = {
method1: somevar + '1',
method2: somevar + '2',
method3: somevar + '3',
method4: somevar + '4',
method5: somevar + '5'
};
alert(minify_var);
});
})();
Run Code Online (Sandbox Code Playgroud)
像这样的代码缩小为:
(function(){this.each(function(){alert({method1:"somevar1",method2:"somevar2",method3:"somevar3",method4:"somevar4",method5:"somevar5"})})})();
Run Code Online (Sandbox Code Playgroud)
这个长度肯定比(+11个符号)更大:
(function(){var a="somevar";this.each(function(){alert({method1:a+"1",method2:a+"2",method3:a+"3",method4:a+"4",method5:a+"5"})})})();
Run Code Online (Sandbox Code Playgroud)
问题是,我们有两个变量,但有一个变量.
实际上它对于一个小脚本来说并不坏,但是对于一个大脚本可能会受到伤害.
添加第一个变量以使缩小的代码更小,但谷歌忽略它.
它也忽略了大多数像这样的其他大小优化技巧.
可以修复吗?
这个问题是关于Google Closure,而不是JavaScript模式.
我有一些for {}在整个项目中反复使用的 javascript 循环,它们都与此类似:
for (var i = 0; i < things.length; i++) {
console.log(things[i]);
// This may be different in different areas of the project
}
Run Code Online (Sandbox Code Playgroud)
我缩小了代码,但是循环占用了很多缩小后的代码。有没有办法将上面的代码缩短为这样:
loop {
console.log(things[i]);
// This may be different in different areas of the project
}
Run Code Online (Sandbox Code Playgroud)
可能不是上面的内容,但你明白了。任何帮助将非常感激 :)
我有一个 queryCassandra,它生成这样的 json:
{"results":[{"term":"term1"},{"term":"term2"}..]}
Run Code Online (Sandbox Code Playgroud)
现在,我想从中获取由字符串格式的某个分隔符分隔的所有术语值;例如:term1,term2,term3
所以我可以将此列表作为字符串参数传递给我已经设置的 java 主程序。
(我只需要转换,不需要java程序执行)
谢谢 !
我们正在使用Cassette v2来合并和缩小 C# ASP.NET MVC5 项目中的 JavaScript 文件。
但是,其中一个依赖项使用 eval 按名称调用某些函数,这会在管道缩小包时导致错误。
我找到了有关 Cassette v1 的 SO 答案,但我需要配置单个捆绑包,以免在Cassette v2中缩小。
当前的配置是:
public void Configure(BundleCollection bundles)
{
bundles.Add<ScriptBundle>("~/bundles/uicomponents", new[] { "~/Scripts/bridge/UIComponents.js" })
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
好的,我对此进行了大量研究,但是在一个drupal站点上,我有一个zurb基础主题,并且对此感到非常满意。我唯一的问题是自定义scss组件时。我正在使用gulp对其进行编译,因此它可以很好地重新创建css文件。但是,我也想将它提供给我min.css文件和css.map文件,但是我似乎无法弄清楚。我在gulpfile.js上尝试了许多不同的迭代,但这是我的最新版本。
它仅产生css文件。
var sassFiles = './themes/zurb_foundation/scss/**/*.scss',
cssDest = './themes/zurb_foundation/css';
gulp.task('styles', function(){
gulp.src(sassFiles)
.pipe(sourcemaps.init())
.pipe(autoprefixer())
.pipe(gulp.dest(cssDest))
.pipe(sass({outputStyle: 'expanded'}).on('error', sass.logError))
.pipe(gulp.dest(cssDest))
.pipe(sass({outputStyle: 'compressed'}).on('error', sass.logError))
.pipe(rename({ extname: 'min.css' }))
.pipe(sourcemaps.write('./themes/zurb_foundation/css'))
.pipe(gulp.dest(cssDest))
});
gulp.task('watch', function() {
livereload.listen();
gulp.watch(sassFiles, ['styles']);
})
Run Code Online (Sandbox Code Playgroud)
我终于得到它产生以下错误:
CssSyntaxError: /Users/USERNAME/Desktop/SITEFOLDER/ROOTDIR/themes/zurb_foundation/scss/foundation.scss:1:1: Unknown word
You tried to parse SCSS with the standard CSS parser; try again with the
postcss-scss parser> 1 | // Foundation by ZURB
Run Code Online (Sandbox Code Playgroud)
我想在这一点上,我的问题是我应该如何设置gulpfile来处理postcss-scss解析?
我正在尝试将Webpack 4用于我的项目。除了extract-text-webpack-plugin.
实际行为:当我构建项目时,根本没有错误,并且缩小了文件
预期行为:styles.css在dist文件夹中获取缩小的 CSS 文件 ( )
输出
文件结构
配置文件
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
module.exports = {
entry: {
'index': './src/index.js',
},
resolveLoader: {
modules: [
'node_modules',
],
},
mode: 'production',
module: {
rules: [
{
test: /\.html$/,
use: [
{
loader: 'html-loader',
options: {
minimize: true,
},
},
],
},
{
test: /\.css$/,
use: ExtractTextPlugin.extract( 'css-loader' ),
},
{
test: …Run Code Online (Sandbox Code Playgroud) 如何取消从 webpack 工具缩小的 js 文件。
在缩小之前,
function autoslideSlider() {
$('.next-slide').trigger('click');
}
$(window).on('load', function(){
$('.preloader').fadeOut('fast');
$('#after_load').addClass('show');
setInterval(autoslideSlider, 8000);
});
$('a').on('click', function () {
if (location.pathname.replace(/^\//, '') === this.pathname.replace(/^\//, '') && location.hostname === this.hostname) {
var $target = $(this.hash);
$target = $target.length && $target;
// $('[name=' + this.hash.slice(1) + ']');
if ($target.length) {
var targetOffset = $target.offset().top - 20;
$('html,body').animate({
scrollTop: targetOffset
}, 1500);
return false;
}
}
});
Run Code Online (Sandbox Code Playgroud)
缩小后,
!function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:o})},n.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t){function n(){$(".next-slide").trigger("click")}$(window).on("load",function(){$(".preloader").fadeOut("fast"),$("#after_load").addClass("show"),setInterval(n,8e3)}),$("a").on("click",function(){if(location.pathname.replace(/^\//,"")===this.pathname.replace(/^\//,"")&&location.hostname===this.hostname){var …Run Code Online (Sandbox Code Playgroud) 我有一个 bash 脚本,可以缩小我所有的 less 文件并将结果输出到 .min.css 文件中。我已经看过类似问题的其他答案,但没有任何效果。今天更新到 Mac OS Catalina 后,我的 bash 脚本停止工作并出现以下错误:
无法加载插件 clean-css 请确保它安装在 less 下或同一级别
这是我的 minify bash 脚本内容的一部分:
YOORS=$(pwd)
...
cd ${PROJECT}/less
...
printf "%-${WIDTH}s %10s\n" "Compiling lessfile content" $(~/node_modules/.bin/lessc --clean-css plugins/lessfile.less > ${PROJECT}/web/css/plugins/lessfile.min.css && echo "${GREEN}[OK]${NC}" || echo "${RED}[FAIL]${NC}")
Run Code Online (Sandbox Code Playgroud)
这很奇怪,因为在命令行中触发命令完全正常,但是 bash 脚本突然停止工作。
我的电脑上安装了 Clean-css:
MacBook-Pro:yoors user$ cleancss -v
4.3.0
Run Code Online (Sandbox Code Playgroud)