Sho*_*per 5 javascript compression powershell
我正在寻找一个脚本,它将获取一堆.js文件,压缩它们,然后将旧的文件替换为同一文件夹中的新文件.我尝试了一些事情,但我发现自己不断遇到新的问题,所以我认为最好转向那些对我有更好理解并重新开始的人.
谁能指出我正确的方向?
更新:我正在使用一组类似于此的命令:
>Get-ChildItem c:\NewFolder\ -recurse |
&java -jar yuicompressor-2.4.6
Run Code Online (Sandbox Code Playgroud)
它似乎不想允许这些输出使用.我确信有一种方法可以让这项工作成功,但对PowerShell来说还是比较新的,我不太自信我现在可以自己解决这个问题.
更新:使用下面的建议命令字符串,我可以得到PowerShell来给我什么似乎是一个读出新的压缩的.js的,但它不会与压缩一个替换现有文件或将其写入到标准输出这我相信在[filename] .min.js格式的同一目录中.
更新:建议命令的修改版似乎可以做到!
>Get-ChildItem c:\NewFolder\ -exclude jquery*.js,*min.js -recurse | %{java -jar yuicompressor-2.4.6.jar ($_.fullname) -o ($_.fullname)}
Run Code Online (Sandbox Code Playgroud)
但是,当命令在PowerShell中运行时,奇怪的是,我从PowerShell收到有关Java命令的错误消息...
java.exe:在行:4 char:72 + Get-ChildItem c:\ Scripts\-exclude jquery*.js,*min.js -recurse | %{的java <<<< -jar的YUICompressor-2.4.6.jar($ .fullname)-O($ .fullname)} + CategoryInfo:NotSpecified:(:字符串)[],的RemoteException + FullyQualifiedErrorId:NativeCommandError用法:JAVA - jar yuicompressor-xyzjar [options] [输入文件]
全局选项-h, - help显示此信息--type指定输入文件的类型--charset使用--line-break读取输入文件在指定的列号后插入换行符-v, - verbose显示信息性消息和警告-o将输出放入.默认为stdout.多个文件可以使用下面的语法进行处理:Java的罐子yuicompressor.jar -o '的.css $: - min.css'*的CSS Java的罐子yuicompressor.jar -o' 的.js $: - min.js'*.js文件
JavaScript选项nomunge仅限Minify,不要混淆preserve-semi保留所有分号禁用 - 优化禁用所有微优化
如果未指定输入文件,则默认为stdin.在这种情况下,需要'type'选项.否则,仅当输入文件扩展名既不是'js'也不是'css'时,才需要'type'选项.
知道PowerShell试图告诉我什么吗?
尝试这样做:
Get-ChildItem c:\NewFolder\ -recurse | %{java -jar yuicompressor-x.y.z.jar $_.fullname}
Run Code Online (Sandbox Code Playgroud)
%{..}
是别名foreach-object
.您从c:\ Newfolder(及其子目录)获取一组文件,并将其中的每一个作为对象传递给管道中的下一个组件.这部分是一个既不支持流水线操作也不支持对象的外部组件,你将它包装在foreach中,并以它能理解的形式提供文件 - 文件的全名(包括路径).
归档时间: |
|
查看次数: |
1256 次 |
最近记录: |