首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >要丑化的CodeKit3 Bash脚本

要丑化的CodeKit3 Bash脚本
EN

Stack Overflow用户
提问于 2017-05-18 21:17:15
回答 1查看 357关注 0票数 0

这篇长篇大论的帖子的最终目标是使用CodeKit钩子将输出文件(在所有其他内容都被预先考虑之后)进行Uglify & Mangle,这样一旦文件组合在一起,就可以从Hook运行Uglify,这样就可以绕过"eof“错误。

我尝试在CodeKit的UI的Bash脚本钩子区域中使用了一些示例。另外,下面详细介绍了我的解决方案是如何在CodeKit中构建的。

感谢您的阅读。

代码语言:javascript
复制
# Outputs a copy of "common.js" file with new name, but does not uglify or mangle
$uglify $CK_OUTPUT_PATH \
         -o $CK_PROJECT_ROOT/js/common.min.js -c –m

# Same thing, outputs only a copy with new name
$CK_OUTPUT_PATH uglifyjs --compress --mangle --output $CK_PROJECT_ROOT/js/common.min.js

使用CodeKit3,我有一个文件,它有几个其他文件的前缀,如下所示。

代码语言:javascript
复制
// @codekit-prepend "rules.js"
// @codekit-prepend "domStart.js"

    // @codekit-prepend "mainStructure.js"
    // @codekit-prepend "pages.js"
    // @codekit-prepend "grids.js"
    // @codekit-prepend "modals.js"
    // @codekit-prepend "thirdParty.js"
    // @codekit-prepend "s508.js"

// @codekit-prepend "domEnd.js"

CodeKit的选项非常容易使用,但我有一个问题。因为我预先准备的许多文件都需要准备好DOM,所以我创建了两个文件,一个是"domStart.js",另一个是"domEnd.js“,它们听起来完全一样。

"domStart.js“包含...

代码语言:javascript
复制
$(function(){

"domEnd.js“包含...

代码语言:javascript
复制
});//end ready

因此,中间的所有内容现在都包装在一条$(function(){ *prepended files* });//end ready语句中。

问题是,当我通过CodeKits UI压缩、格式化或损坏文件时,我在CodeKit的控制台中得到了以下错误输出。我知道这是因为"domStart.js“文件包含没有闭合的开头"{”,因此文件结束错误。

代码语言:javascript
复制
UglifyJS: Minification failed:

Parse error at /Users/colemmic/dev/roomstogo-store/roomstogo-web/src/main/webapp/static/js/common/domStart.js:1,13
$(function(){
             ^
SyntaxError: Unexpected token: eof (undefined)
    at JS_Parse_Error.get (eval at <anonymous> (/Applications/CodeKit.app/Contents/Resources/engines/node_modules/uglify-js/tools/node.js:27:1), <anonymous>:86:23)
    at /Applications/CodeKit.app/Contents/Resources/engines/node_modules/uglify-js/bin/uglifyjs:384:39
    at time_it (/Applications/CodeKit.app/Contents/Resources/engines/node_modules/uglify-js/bin/uglifyjs:620:15)
    at /Applications/CodeKit.app/Contents/Resources/engines/node_modules/uglify-js/bin/uglifyjs:345:9
    at tryToString (fs.js:455:3)
    at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:442:12)
EN

回答 1

Stack Overflow用户

发布于 2017-05-19 23:44:54

在对此进行了许多小时的额外研究之后,我设计出了一个可行的解决方案。

因为CodeKit3稍有不同,所以必须定义uglify的完整路径。

代码语言:javascript
复制
/Applications/CodeKit.app/Contents/Resources/engines/node_modules/uglify-js/bin/uglifyjs $CK_OUTPUT_PATH \
         -p -c -m -o $CK_PROJECT_ROOT/js/common.min.js

所以上面的声明并不遥远,但是因为应用程序包含了其中的所有框架,所以在它们可以运行之前只需要定义它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44048866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档