问题标签 [uglifier]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
41 浏览

css - 评论破坏了 CSS 规则

我有一个 rails 应用程序,我正在使用 bootstrap 和其他一些供应商的 js 和 css。

开发时一切都很好,但是当我将其移至生产环境(heroku)时,一些 css 规则被忽略了。

这是被忽略的规则之一:

有趣的是,它的.drawer--sidebar .drawer-hamburger行为符合预期但.drawer--sidebar.drawer--left .drawer-nav未被检测到。

看看生成的 css 我得到了这个:(扩展)

我试图删除带有版权的评论, config.assets.js_compressor = Uglifier.new(comments: :none, copyright: false)但没有奏效。

我会简单地删除有问题的评论,但我们会在每次部署时预编译资产之前下载依赖项。

我如何指示 rails 忽略这些评论?

编辑

只是为了澄清。

config.assets.js_compressor = Uglifier.new(comments: :none, copyright: false)确实有效,但仅适用于 js 文件。

config.assets.js_compressor = :sassthis question's answer所述不起作用

0 投票
1 回答
8066 浏览

ruby-on-rails - Ruby 2.4 升级后 - 尝试加载 gem 'uglifier' 时出错 (Bundler::GemRequireError)

我刚刚升级了我的应用程序以使用 Ruby 2.4.0,在捆绑过程中没有任何错误。但是,当我尝试启动服务器时,出现以下错误:

我在此站点上的其他答案中发现您需要添加gem 'therubyracer'到您的 Gemfile 中,但自从创建我的应用程序以来我已经有了它。

我的机器上也安装了最新版本的 NodeJS。

有没有其他人遇到过这个错误并且知道如何解决它?

Gemfile 中的 uglifier 配置:gem 'uglifier', '~> 3.0.4'

全栈跟踪:

0 投票
2 回答
1047 浏览

ruby-on-rails - CKEditor 不仅在生产环境中工作

ckeditor在我的 Rails 应用程序中使用了 ruby​​ gem (v4.2.2),它在开发中运行良好,但在我的production环境中却不行。我的资产管道看起来没有问题,因为所有其他资产加载时都没有任何问题。

在页面上,谷歌浏览器给了我这个错误:

在此处输入图像描述

而 Firefox 只是在控制台中抛出这个:


到目前为止我已经尝试过:

  • Uglifier.new(mangle: false)Sprockets 中用作 JS 压缩器
  • 手动设置CKEDITOR_BASEPATH

rake asset:precompilein all生成的资产文件public/assets/ckeditor在末尾都有一个哈希,如下所示:

但 JS 似乎并没有加载它们并试图现在修复它。


代码

我的 Javascript 文件:

资产初始化器:

0 投票
1 回答
232 浏览

ruby-on-rails - 服务器启动WINDOWS 10时出现ruby on rails uglifier错误

所以我是新手,我试图在win10上为我的本地主机服务器添加rails v5,我环顾四周,无法弄清楚

我把这段代码放在`

然后我明白了

请帮忙

0 投票
2 回答
783 浏览

ruby-on-rails - Heroku push - ExecJS::RuntimeError: SyntaxError: Name expected

推送到 Heroku 时遇到以下错误。前几天工作正常。我尝试推送的提交没有重大配置更改。我很困惑如何解决这个问题。Rails 5.1 应用程序使用以下构建包:

我正在使用 webpacker 和纱线。我认为这与它有关,但难以挖掘更多信息。

经过进一步研究,发现问题与Uglifier有关。当我将第三方库 datepicker.js 的内容复制并粘贴到 Uglifier 中时,我得到了同样的错误:

0 投票
2 回答
2287 浏览

ruby-on-rails - Rails 5 不会在生产环境中使用 ES6 代码预编译 JS 文件

我正在使用一些包含 ES6 代码的 javascript 部署一个应用程序。

当我运行时bundle exec rake assets:precompile RAILS_ENV=production,我得到了:

这是因为 prueba.js 具有以下内容:

而且 Uglify 不识别 ES6。为了解决这个问题,我已经安装并设置了 gem:

但是不工作,

在 application.rb 中,我有:

注意:如果我在rake assets:precompile没有 RAILS_ENV=production 的情况下运行,我不会收到错误

0 投票
1 回答
528 浏览

ruby-on-rails - SyntaxError: Unexpected token: punc (}) in rails:precompile

我正在尝试部署到我的登台服务器,突然间我收到以下错误

我已经运行了这个 rails 代码,但一切看起来都很好,我没有收到任何 javascript 文件的错误。

0 投票
1 回答
606 浏览

ruby-on-rails - 添加yarn和webpacker后预编译出现几个错误

我最近将 webpacker 和 yarn 添加到 rails 5 应用程序并执行了bundle exec webpacker:install:react.

这安装了很多依赖项,我在运行时遇到了几个错误bundle exec rake assets:precompile RAILS_ENV=production RAILS_SERVE_STATIC_FILES=enable SECRET_KEY_BASE=$(bundle exec rake secret)

我的 config/initializers/assets.rb

我的 config/environments/production.rb 包括:

作为临时解决方法,我.yarnclean在引发异常的文件末尾添加:

然而清理 bin 文件夹实际上是一个非常糟糕的主意,因为它破坏了 webpack 本身:

在资产预编译期间有什么聪明的方法来处理节点模块?我的资产文件夹增加了超过 60 MB,我想阻止其中一些被编译。

先感谢您

编辑 2018-02-09

我目前解决了样式表的问题,如下所示:

然后我包含了这个解析器,它处理来自config/webpacker/environment.js中资产模块的字体、图像等的相对导入:

然后我在application.sass里面创建了一个 **app/javascripts/packs` 来导入节点库:

不幸的是,我还没有找到捆绑相关 .js 文件的方法。我希望能够做类似于//= require链轮使用的事情

0 投票
1 回答
870 浏览

javascript - 老式 JavaScript 类和高级 JS 缩小问题

我有一个相当精细的类,它使用旧式的创建类的方式。不是使用类关键字,而是使用函数关键字定义类。要创建公共属性,请分配this.publicProperty。我的代码运行良好。

然而,当我尝试在高级模式下使用Closure Compiler(一个 JS 压缩工具)时,我得到了无数错误,从一个关于对this的“危险”引用开始。这是一个简单的例子,它说明了我的问题。我尝试压缩这个简单的 JS 代码:

编译后的代码输出为空并且有一个警告:

为什么这是“危险的”?

我在这里看到了关于 SO 的其他 帖子,这些帖子清楚地表明我的代码看起来不错。为什么 Closure minifier 抱怨这个?

作为第二个问题,我想知道是否有人可以建议一个有效的基于浏览器的 JS 缩小器,它将你的 JS 压缩到一行代码。我已经尝试过 Uglifier 和 Closure 并且javascript-minifier无法获得缩小的 JS 输出,这只是一行代码。

0 投票
3 回答
3562 浏览

ruby-on-rails - Ruby on Rails 错误:Uglifier::Error: Unexpected token: operator (<)

每当我rake assets:precompile RAILS_ENV=production在命令行中运行时,都会收到此错误,这会阻止我预编译我的资产。

以下是命令行中显示的完整错误:

我到底需要做什么来修复这个错误?