我试图// comments用我的php preg_replace()在我的javascript中取消注释并创建一个preg_replace,它应该执行以下操作:
1.当评论从新行开始时,删除整行:
// COMMENTS .....
2.当评论落后于脚本时,在1 TAB之后//删除该评论部分
exampleScript(); // (1space) comments
3.在http://中与//不匹配
这个pregreplace做了上述工作,但是,它目前删除了3行代码//.(请参阅下面的错误匹配标题)它应该跳过.
$buffer = preg_replace('/(?<!http:)\/\/\s*[^\r\n]*/', '', $buffer);
Run Code Online (Sandbox Code Playgroud)
很好的比赛
//something
// something *!&~@#^hjksdhaf
功能();// comment
假匹配
(/\/\.\//)
"//"
"://"
Run Code Online (Sandbox Code Playgroud)
那么,我如何过滤这三个错误匹配以及如何更改以下正则表达式?
(?<!http:)\/\/\s*[^\r\n]*
Run Code Online (Sandbox Code Playgroud)
PS,我不希望使用其他人的代码minifiers /框架与他们自己的开销.就我自己而言.
现代JavaScript混淆/缩小工具如何保护我的代码免受逆向工程的影响?另外,哪些混淆平台最适合防止这种情况?似乎很容易使程序反模糊化代码并使该过程变得毫无意义.
如果这不是完美的东西,是否有任何解决方案依赖于远程提供的代码?
我在一个让我困惑的缩小图书馆中遇到了这段JS代码:
...
return e.input || L(), e.addTest = function(a, b) {
...
Run Code Online (Sandbox Code Playgroud)
我在一个jsFiddle上玩它,没有太多运气了解发生了什么.
我想知道:
我正在 .net mvc 4 中编写一个应用程序。我开始使用 .net 捆绑,但在缩小时遇到了一些问题。由于变量的名称被缩短为一个字母,因此变量名称相同(来自不同的脚本)会产生一些冲突,从而产生各种烦人的错误和错误。这是一个已知的问题,还是我错过了什么?有没有办法允许在不更改变量名称的情况下缩小脚本(空格和 stuf)?谢谢!
目前我可以使用资产管道插件缩小 css/js。每个 js/css 文件都被单独缩小。
有没有办法缩小一个文件中的js和另一个文件中的css?
我目前在 config.groovy 中设置了这些
grails.assets.minifyJs = true
grails.assets.minifyCss = true
grails.assets.bundle=true
Run Code Online (Sandbox Code Playgroud) 所以我通过Node循环遍历目录中的文件,并希望用UglifyJs缩小它们.
对于JavaScript文件,API很容易实现:
var UglifyJS = require("uglify-js")
// Looping here
UglifyJS.minify(listOfAllFiles[i])
Run Code Online (Sandbox Code Playgroud)
但是,我需要缩小的文件是JSON文件,因此产生了一个eval错误.在命令行中,如果您正在缩小JSON,则只需传递--expr它,它将作为单个表达式进行求值.知道如何将其传递到JavaScript API的options对象中吗?
干杯.
我将所有 js 文件缩小并合并为一个文件,并包含在 html 中,但站点中没有任何内容。
js里面文件太多了,不想一一包含,所以修改合并为一个。
有没有其他方法可以减少对 js 文件的 http 调用次数。
我现在将我的第一个项目与 webpack 捆绑在一起,除了 webpack 没有缩小我的bundle.min.js代码外,一切都按预期工作。
我很确定我做错了什么,但无法发现错误。
任何帮助,将不胜感激。提前致谢。
我带着我的 webpack.config.js
var webpack = require("webpack");
var ExtractTextPlugin = require("extract-text-webpack-plugin");
var OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin');
module.exports = {
context: __dirname + "/public",
entry: './app.js',
output: {
path: __dirname + '/dist',
filename: "bundle.min.js"
},
plugins: [
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery"
}),
new webpack.LoaderOptionsPlugin({
minimize: true,
debug: true
}),
new webpack.optimize.UglifyJsPlugin({
beautify: false,
mangle: {
screw_ie8: true,
keep_fnames: true
},
compress: {
screw_ie8: true
},
comments: false
}),
new ExtractTextPlugin("bundle.min.css"),
new OptimizeCssAssetsPlugin() …Run Code Online (Sandbox Code Playgroud) 我有这个源代码:
function findMessageErrors(btn) {
var error = "";
var message = $(btn).parent().siblings().find("textarea[name='message']").val();
if (message === "") {
error += "*Please enter a message.<br/>";
}
if (!$(btn).parent().siblings().find('input[name="agree"]').prop('checked')) {
error += "*Please agree.<br/>";
}
return error;
}
Run Code Online (Sandbox Code Playgroud)
这会被缩小。缩小后,它在 Chrome 开发工具的 Sources 选项卡中看起来像这样:
function findMessageErrors(btn) {
var error = "";
return "" === $(btn).parent().siblings().find("textarea[name='message']").val() && (error += "*Please enter a message.<br/>"),
$(btn).parent().siblings().find('input[name="agree"]').prop("checked") || (error += "*Please agree.<br/>"),
error
}
Run Code Online (Sandbox Code Playgroud)
我理解逗号运算符如何“按顺序运行一系列表达式,然后返回最后一个表达式的结果” (来自此处)。但我很难理解这些 OR 和 AND 运算符如何构建在缩小代码中返回的字符串。
有谁有一种有用的方法来大声朗读它,以帮助我理解它是如何工作的?我想我没有看到源代码中的 2 个独立 IF 语句如何被缩小为一系列 && 然后 …
我是第一次使用requireJS.我得到它工作正常然后来优化文件以缩小和连接现在我得到错误" 未捕获TypeError:undefined不是一个函数 "错误是在front-built.js的 8175行.我已经为这个问题留下了没文字的文件,以便更容易识别问题.
我在优化之前的主要JS文件看起来像这样(工作正常):http: //thebeer.co/js/front.js
优化后(在第8175行抛出错误):http: //thebeer.co/js/front-built.js
希望有人对requireJS比我更熟悉,并且可以解决这个问题.可能是我在优化之前包含我的JS文件的方式.我真的不确定.
minify ×10
javascript ×9
node.js ×2
obfuscation ×2
php ×2
angularjs ×1
grails ×1
jquery ×1
json ×1
preg-replace ×1
requirejs ×1
terminology ×1
uglifyjs ×1
uglifyjs2 ×1
webpack ×1