mirror of
https://github.com/konvajs/konva.git
synced 2025-09-18 09:50:05 +08:00
updated build file to also minify modules separately for custom builds. Started work on decoupling Animation and DragAndDrop logic from other modules
This commit is contained in:
42
Thorfile
42
Thorfile
@@ -1,16 +1,15 @@
|
||||
require 'json/pure'
|
||||
require 'uglifier'
|
||||
|
||||
class Build < Thor
|
||||
# This is the list of files to concatenate. The first file will appear at the top of the final file. All files are relative to the lib directory.
|
||||
FILES = [
|
||||
"license.js", "src/Global.js", "src/Transition.js", "src/filters/Grayscale.js",
|
||||
"src/util/Type.js", "src/util/Canvas.js", "src/util/Tween.js", "src/util/Transform.js", "src/util/Collection.js",
|
||||
"src/Animation.js", "src/Node.js", "src/Container.js", "src/Stage.js", "src/Layer.js", "src/Group.js", "src/Shape.js",
|
||||
"src/Global.js", "src/filters/Grayscale.js", "src/util/Type.js", "src/util/Canvas.js", "src/util/Tween.js", "src/util/Transform.js", "src/util/Collection.js",
|
||||
"src/Animation.js", "src/Node.js", "src/DragAndDrop.js", "src/Transition.js", "src/Container.js", "src/Stage.js", "src/Layer.js", "src/Group.js", "src/Shape.js",
|
||||
"src/shapes/Rect.js", "src/shapes/Circle.js", "src/shapes/Ellipse.js", "src/shapes/Image.js", "src/shapes/Polygon.js", "src/shapes/Text.js", "src/shapes/Line.js", "src/shapes/Sprite.js", "src/shapes/Star.js", "src/shapes/RegularPolygon.js", "src/shapes/Path.js", "src/shapes/TextPath.js"
|
||||
]
|
||||
|
||||
desc "dev", "Concatenate all the js files into /dist/kinetic-VERSION.js."
|
||||
method_option :date, :aliases => "-d", :required => false, :type => :string, :desc => "The release date"
|
||||
def dev(version)
|
||||
file_name = "dist/kinetic-#{version}.js"
|
||||
|
||||
@@ -21,41 +20,56 @@ class Build < Thor
|
||||
end
|
||||
end
|
||||
|
||||
puts ":: Building the file /#{file_name}..."
|
||||
puts ":: Building full source file /#{file_name}..."
|
||||
File.open(file_name, "w") do |file|
|
||||
file.puts concatenate(version, options[:date])
|
||||
file.puts concatenate(version)
|
||||
end
|
||||
|
||||
puts " -> Done!"
|
||||
end
|
||||
|
||||
desc "prod", "Concatenate all the js files in into /dist/kinetic-VERSION.min.js and minify it."
|
||||
method_option :date, :aliases => "-d", :required => false, :type => :string, :desc => "The release date"
|
||||
def prod(version)
|
||||
file_name = "dist/kinetic-#{version}.min.js"
|
||||
|
||||
puts ":: Deleting other development files..."
|
||||
puts ":: Deleting other prod files..."
|
||||
Dir.foreach("dist") do |file|
|
||||
if file.match(/.*min\.js/)
|
||||
File.delete("dist/" + file)
|
||||
end
|
||||
end
|
||||
|
||||
puts ":: Building the file /#{file_name}..."
|
||||
require 'json/pure'
|
||||
require 'uglifier'
|
||||
puts ":: Building full prod file /#{file_name}..."
|
||||
|
||||
|
||||
#build full minfiied prod file
|
||||
#=begin
|
||||
File.open(file_name, "w") do |file|
|
||||
uglify = Uglifier.compile(concatenate(version, options[:date]))
|
||||
uglify = Uglifier.compile(concatenate(version))
|
||||
uglify.sub!(/\*\/ .+ \*\//xm, "*/")
|
||||
file.puts uglify
|
||||
end
|
||||
puts ":: Minifying the file /#{file_name}..."
|
||||
#=end
|
||||
|
||||
#build modular minified files
|
||||
puts ":: Building minified modules..."
|
||||
FILES.each do |file|
|
||||
content = IO.read(File.expand_path(file)) << "\n"
|
||||
mod = File.basename(file)
|
||||
mod[".js"] = ""
|
||||
module_filename = "dist/kinetic-#{mod}-#{version}.min.js"
|
||||
File.open(module_filename, "w") do |file2|
|
||||
uglify = Uglifier.compile(content, { copyright: false })
|
||||
file2.puts uglify
|
||||
end
|
||||
end
|
||||
|
||||
puts " -> Done!"
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def concatenate(version, date)
|
||||
def concatenate(version)
|
||||
date ||= Time.now.strftime("%b %d %Y")
|
||||
content = ""
|
||||
FILES.each do |file|
|
||||
|
Reference in New Issue
Block a user