Fix assets:precompile
to be idempotent again
Each execution regenerates the manifest, so that we also need to rewrite the hashes.
This commit is contained in:
@ -48,11 +48,17 @@ namespace :assets do
|
|||||||
end
|
end
|
||||||
|
|
||||||
# Read the source map file and append the source map link
|
# Read the source map file and append the source map link
|
||||||
existing_file_content = file.readlines
|
existing_file_content = file.readlines.map(&:strip)
|
||||||
next if existing_file_content.blank? || existing_file_content[-1].include?(mapping_string)
|
|
||||||
|
|
||||||
new_content = existing_file_content + ["\n", mapping_string]
|
if existing_file_content.blank? || existing_file_content[-1] == mapping_string
|
||||||
write_asset(file, new_content.join, manifest)
|
# Just "restore" the integrity hash
|
||||||
|
mtime = Sprockets::PathUtils.stat(file)&.mtime
|
||||||
|
manifest[File.basename(file)].merge!(changed_manifest(existing_file_content.join("\n"), mtime))
|
||||||
|
else
|
||||||
|
# Append the source map link to the file
|
||||||
|
new_content = existing_file_content + [mapping_string]
|
||||||
|
write_asset(file, new_content.join("\n"), manifest)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# We need to write the manifest file again to include the new integrity hashes
|
# We need to write the manifest file again to include the new integrity hashes
|
||||||
|
Reference in New Issue
Block a user