我知道你可以缩小PHP,但我想知道是否有任何意义.PHP是一种解释型语言,因此运行速度比编译语言慢一点.我的问题是:客户是否会看到页面加载时可见的速度提升,如果我要缩小我的PHP?
还有,有没有办法编译PHP或类似的东西?
注意:此问题仅与Grunt 0.3.x相关,仅供参考.有关最新Grunt 1.x版本的帮助,请参阅此问题下方的评论.
我目前正在尝试使用Grunt.js来设置自动构建过程,以便首先连接然后缩小CSS和JavaScript文件.
我已经能够成功连接和缩小我的JavaScript文件,虽然每次我运行grunt时它似乎只是附加到文件而不是覆盖它们.
至于缩小甚至连接CSS,我至今无法做到这一点!
在咕噜CSS模块方面,我已经尝试使用consolidate-css
,grunt-css
&cssmin
但无济于事.无法理解如何使用它们!
我的目录结构如下(是一个典型的node.js应用程序):
这是我的grunt.js文件目前在我的应用程序的根文件夹中的样子:
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
pkg: '<json:package.json>',
concat: {
dist: {
src: 'public/js/*.js',
dest: 'public/js/concat.js'
}
},
min: {
dist: {
src: 'public/js/concat.js',
dest: 'public/js/concat.min.js'
}
},
jshint: {
options: {
curly: true,
eqeqeq: true,
immed: true,
latedef: true,
newcap: true,
noarg: true,
sub: true,
undef: true,
boss: true,
eqnull: true,
node: true
},
globals: …
Run Code Online (Sandbox Code Playgroud) 有最艰难的时间试图弄清楚为什么缩小不起作用.
我已经通过一个数组对象注入了我的提供者之前的功能,在网络上提出了许多建议,但仍然是"未知的提供者:aProvider < - a"
定期:
var app = angular.module('bpwApp', ['ui.bootstrap', 'ui', 'myTabs'])
.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider){
$routeProvider.
when('/', {templateUrl: 'partials/home.jade', controller: HomeCtrl});
$locationProvider.html5Mode(true);
}])
Run Code Online (Sandbox Code Playgroud)
精缩:
var app = angular.module('bpwApp', ['ui.bootstrap', 'ui', 'myTabs'])
.config(['$routeProvider', '$locationProvider', function(a, b){
a.
when('/', {templateUrl: 'partials/home.jade', controller: HomeCtrl});
b.html5Mode(true);
}])
Run Code Online (Sandbox Code Playgroud)
任何建议都有很大的意义!
如何在gzip压缩之后估算我的JavaScript文件的大小?有在线工具吗?或者它与使用winzip类似?
是否有插件,附加组件,Greasemonkey脚本或类似的东西(最糟糕的是,一个易于使用的代理?)自动取消网站上包含的Javascript文件?
我知道例如jsbeautifier.org,但在外部执行此操作不允许我在未明细化的代码中设置断点.
我的典型用例:
我主要对与Firebug一起使用的解决方案感兴趣,但如果有适用于Chrome或Opera的开发工具的东西,我也想听听它.
在grunt中concat,uglify和minify任务之间有什么区别?我为我所有网站的javascript任务设置了一个uglify任务,它似乎都缩小并连接它们.Grunt的网站对如何配置每个任务有很好的描述,但似乎并没有解释每个任务实际上做了什么.
可能重复:
为什么缩小资产而不是标记?
我见过很多网站使用缩小的CSS和JavaScript来增加网站响应时间,但我从未见过任何网站使用缩小的HTML.你为什么不希望你的HTML缩小?
我已经构建了一个复杂的ajax驱动的单页webapp,它使用一个服务于JSON的RESTful后端Web服务.javascript被分成许多不同的文件,每个文件代表某种特征或组件.
虽然该服务已经进行了alpha测试,但我只是在没有缩小的情况下单独提供所有这些文件.但是现在我想推出测试版,我真的需要组合文件,缩小它们并对它们进行版本化.我想使用Maven将其添加到我的构建过程中.
我正在使用以下"类型"的javascript文件,其中#3和#4是我关注的问题:
我想在构建过程中执行以下操作:
app-2.0.6.min.js
,其中2.0.6是maven项目版本.feature-abc-56ab32de29.min.js
,其中56ab32de29是该特定文件的版本号.<script>
标记更新HTML文件以指向具有正确版本号的javascript文件.是否有maven插件可以协助连接?
有没有maven插件可以帮助缩小?理想情况下,我想使用Google Closure Compiler,但如果更简单,可以与其他人合作.
是否有maven插件可以帮助进行版本控制?
有没有办法让4型javascript文件具有独立的版本号?理想情况下,如果文件在版本2.0.5和2.0.6之间没有变化,则用户无需下载新版本,并且其缓存版本可以正常工作.我正在使用GIT进行源代码控制,那么有没有办法使用文件的GIT哈希码进行版本控制?
有没有一种解决方案可以压缩常规HTML文件中内联的javascript而不会破坏HTML?
是否有压缩和版本化我的CSS文件的解决方案?
我正在使用webpack并想部署我的网站.如果我缩小并捆绑我的JavaScript代码,我有这个错误:
解析错误:意外的令牌:name(
Button
)
这是我没有捆绑的代码:
'use strict';
export class Button { // <-- Error happens on this line
constructor(translate, rotate, text, textscale = 1) {
this.position = translate;
this.rotation = rotate;
this.text = text;
this.textscale = textscale;
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,在捆绑代码中,关键字export
已删除.在开发过程中,没有抛出任何错误.在这里你可以找到我的WebPack配置文件:
var webpack = require('webpack');
var PROD = true;
module.exports = {
entry: "./js/entry.js",
output: {
path: __dirname,
filename: PROD ? 'bundle.min.js' : 'bundle.js'
},
module: {
loaders: [
{
test: /\.css$/,
loader: "style-loader!css-loader"
}
]
},
plugins: …
Run Code Online (Sandbox Code Playgroud)