问题标签 [grunt-contrib-uglify]

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 投票
1 回答
2337 浏览

gruntjs - Grunt Uglify 源地图“无法写入”

我正在使用 Grunt 连接和缩小文件(使用 grunt-contrib-uglify 和 grunt-contrib-concat )并且我想添加一个源映射。uglify 文档说只需为 sourceMap 添加一个选项,设置为 true 布尔值。但是当我将它添加到我的任务中(我尝试了几个不同的任务)时,进程运行良好,直到它到达源映射部分,然后我得到:

写真实...错误

警告:无法写入“真实”文件(错误代码:未定义)。使用 --force 继续。

连接完成,缩小完成。但是......源图没有运气。

我的 Grunt 文件中的示例:

(我也尝试过在我的顶级选项对象中使用 sourceMap。)

有任何想法吗?显然 Grunt 可以写入目录,因为它创建了连接和缩小的文件,我想不出还有什么问题。

0 投票
1 回答
1593 浏览

node.js - grunt uglify 在父目录中找不到我的文件

与我编写的所有其他节点项目不同,这个项目需要节点服务器的文件夹不是根目录。这是当前文件夹层次结构:

GruntFile.js, package.json, 和server.js都位于nodeserver/

这是我的 GruntFile:

当我运行 grunt 时,它找不到我指定的文件。这是回应:

为什么看不到我的js文件?

0 投票
2 回答
1421 浏览

gruntjs - Grunt uglify 找不到文件

我有以下目录结构:

我正在尝试获取 development/js/pages 中的所有文件并将它们输出为 js/pages 并使用 grunt uglify 缩小它们,但仍保留单独的文件 - 我不想将所有文件组合在一起。我尝试了以下方法:

但这给了我一个错误:无法写入 js/page 文件

然后我尝试了这个,它在 uglify 文档中:

但这只是给我在 development/js/pages 中的每个文件这个错误:

找不到源文件“filename.js”

然后另一个错误说Destination (js/page) notwritten 因为源文件是空的

任何想法为什么?

0 投票
1 回答
855 浏览

javascript - 覆盖 Grunt 中的特定文件

我有三个项目: Proj A,其中包含一个基本设置,其中包含要在许多不同项目中重复使用的文件,不可编辑。还有 Proj B 和 C,它使用 Proj A 中的文件作为其基础。每个项目都有自己的 Gruntfile。

我想在 Proj B 和 C 中自定义一些 JS 和 SCSS 文件(例如更改颜色/变量)。但是要知道 Proj A 可能会不时更新,因此我无法编辑任何这些基本文件,因为在将最新更改拉入 B 和 C 时它们会被覆盖。因此,我必须创建应该覆盖的自定义文件来自 Proj A 的文件。

1)

一种方法是复制我要编辑的文件,然后简单地将“覆盖”添加到它的文件名中:

ui/styles/sass/ _override_colors.scss *(应该覆盖 ui/styles/sass/_colors.scss)* ui/scripts/ _override_base.js (应该覆盖 ui/scripts/base.js)

那么问题是:如何在我的 Gruntfile 中指定此规则,“如果存在以 '_override' 开头的任何文件,则应覆盖其等效文件”。但是,如果我复制的文件很大,这可能不是可选的,因为这意味着两个非常相似的大文件。

2)

另一种方法可能是添加一个名为 _overrides.scss 的新文件,并将其添加到我的 @import 文件的最后。但是,如果我要更改很多东西,那将是一个坏主意,因为它可能过于混乱和庞大,并且还意味着重复代码(除非我只覆盖变量而没有类)。

你会采用哪种方法?有没有其他更好的方法来解决这个问题?

谢谢!

0 投票
1 回答
134 浏览

javascript - Grunt Uglify 获得节省的空间总和

我已经 grunt-contrib-uglify 为我缩小了一堆 js 文件,并且认为如果它可以总结缩小前后文件大小的差异,那将是非常整洁的。有没有办法做到这一点?

谢谢!

0 投票
1 回答
101 浏览

javascript - Grunt Uglify 一些脚本

我想从我的 angularjs 项目中丑化一些细节 js。我不想丑化 al js 路径。

我试过这个

和这个

而不是运气。

如果有人可以帮助我,我非常感谢您的帮助。

谢谢。

0 投票
0 回答
54 浏览

javascript - grunt 的文件列表解析器

grunt-contrib-uglify用来构建我的asmcrypto.js项目。它的结构正确并拆分为单独的组件,每个组件位于自己的文件夹中。

现在我想给用户一个选项来选择要包含到生成的缩小文件中的组件。组件可能依赖于其他组件,它们应该被自动解析。

我想最终的解决方案应该类似于grunt with:aes-cbc with:hmac-sha256暗示依赖关系也是内置的。

从我的角度来看,它应该是一个能够遍历依赖树并返回组合源文件列表的 grunt 插件,该列表可以传递给grunt-contrib-uglify.

尝试几个小时:

  • grunt-feature

  • grunt-component-build

  • grunt-resolve

没有人能做到我所描述的,或者我没有从文档中找到合适的方法。

0 投票
1 回答
1671 浏览

gruntjs - grunt-contrib-uglify 输出为空

我整天都在这里寻找答案,我确信这只是我的配置搞砸了。

简短版本:我已经配置了 grunt。grunt-contrib-concat 工作。grunt-contrib-uglify 说它可以工作,但输出一个空文件。

长版:项目结构为:

我想获取 foo.js 和 bar.js 并将它们输出到 /dist/js 目录中名为“app.js”的文件中。

这是我的配置:

是的,Grunt 安装在我的 DEV 目录中。

当我跑

我得到以下控制台输出:

最后,它确实最终创建了文件 /projectRoot/prod/js/app.min.js

...但它是空的。

关于我做错了什么的任何想法?此语法完全遵循自述文件和我能找到的任何其他文档中的内容。concat 任务运行良好。

任何帮助,将不胜感激。谢谢!

--EDIT-- 我更新了 Grunt,使其位于 projectRoot 中,但输出没有区别。

===============

更新

我找到了它输出空文件的原因。显然,自调用匿名函数被“缩小”了,或者至少在这种情况下它们是。这可能是因为这里没有活动代码。我将进一步研究这一点。我假设实际做事的函数,引用全局变量等将保留。

===============

最后更新

问题解决了。即使有缩小所有代码的选项,它仍然会删除任何未引用的变量等。我的测试文件中的东西没有使用。如果我添加对所述功能的引用,那么它们就会出现。

希望这可以帮助某人。

0 投票
2 回答
2099 浏览

javascript - 在 Grunt 上的 uglifyjs 任务期间有条件地删除 DEBUG

我想在构建时删除我的 DEBUG 语句,我注意到在 http://lisperator.net/uglifyjs/compress我可以定义global_defs: { DEBUG : false }删除包含在调试子句中的任何内容if (DEBUG) {}

我的 uglify 任务似乎没有删除任何 DEBUG 部分,对我做错了什么有任何想法吗?

我正在使用 grunt-contrib-uglify v0.3.3

这是我的繁重任务: ...

一些文件.js

0 投票
1 回答
1283 浏览

javascript - Grunt-uglify 递归

我有一组带有一些 *.dev.js 文件的子文件夹。我需要 grunt 对目录树中的每个 .dev.js 文件进行 uglify 并在源文件旁边创建 uglified 文件。这是我尝试这样做的方法:

但这给出了一个错误:

运行“uglify:dist”(uglify) 任务文件 src 创建:13.49 kB → 5.62 kB

目标分机未写入,因为 src 文件为空。警告:对象 true 没有方法 'indexOf' 使用 --force 继续。