gpt4 book ai didi

javascript - 使用 guard 将 javascript 文件缩小到不同的目录中

转载 作者:行者123 更新时间:2023-11-30 17:42:20 26 4
gpt4 key购买 nike

我正在尝试创建我的第一个保护文件,但在尝试缩小我的一些 javascript 文件时遇到了困难。

我希望 guard 监视“app/assets/js”目录,并在任何时候在此目录中更改文件,以便在“public/js”中创建同名文件的缩小版本,如果可能在同一目录名称中。

例如,如果我将 bootstrap.js 文件保存在 app/assets/js/vendor 中,我希望将缩小版本放在 public/js/vendor/bootstrap.min.js 文件中。

以下是我当前的保护文件的相关部分:

require 'cssmin'
require 'jsmin'

module ::Guard
class Refresher < Guard
end
end

#
guard :refresher do
watch('public/css/styles.min.css') do |m|
css = File.read(m[0])
File.open(m[0], 'w') { |file| file.write(CSSMin.minify(css)) }
end
watch(%r[app/assets/js/.+]) do |m|
js = File.read(m[0])
File.open(m[0], 'w') { |file| file.write(JSMin.minify(js)) }
end
end

这是我对 Ruby 的第一次体验,因此非常感谢面向初学者的答案。谢谢。

最佳答案

您写入的是您正在阅读的同一个文件。根据你的问题,你需要这样的东西:

watch(%r[app/assets/js/(.+)]) do |m|
File.write("public/js/#{ m[1] }", JSMin.minify(File.read(m[0])))
end

请注意我添加到正则表达式中的捕获组,以便我可以使用 m[1] 获取文件名。

关于javascript - 使用 guard 将 javascript 文件缩小到不同的目录中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20801189/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com