diff options
-rw-r--r-- | actiontext/app/javascript/actiontext/index.js | 1 | ||||
-rw-r--r-- | actiontext/lib/templates/installer.rb | 29 | ||||
-rw-r--r-- | actiontext/package.json | 4 |
3 files changed, 23 insertions, 11 deletions
diff --git a/actiontext/app/javascript/actiontext/index.js b/actiontext/app/javascript/actiontext/index.js index c149eda952..0e9251018a 100644 --- a/actiontext/app/javascript/actiontext/index.js +++ b/actiontext/app/javascript/actiontext/index.js @@ -1,4 +1,3 @@ -import * as Trix from "trix" import { AttachmentUpload } from "./attachment_upload" addEventListener("trix-attachment-add", event => { diff --git a/actiontext/lib/templates/installer.rb b/actiontext/lib/templates/installer.rb index e7c6c2623e..990e41ca00 100644 --- a/actiontext/lib/templates/installer.rb +++ b/actiontext/lib/templates/installer.rb @@ -1,3 +1,13 @@ +require "pathname" +require "json" + +APPLICATION_PACK_PATH = Pathname.new("app/javascript/packs/application.js") +JS_PACKAGE_PATH = Pathname.new("#{__dir__}/../../package.json") + +JS_PACKAGE = JSON.load(JS_PACKAGE_PATH) +JS_DEPENDENCIES = JS_PACKAGE["peerDependencies"].dup.merge \ + JS_PACKAGE["name"] => "^#{JS_PACKAGE["version"]}" + say "Copying actiontext.scss to app/assets/stylesheets" copy_file "#{__dir__}/actiontext.scss", "app/assets/stylesheets/actiontext.scss" @@ -8,14 +18,15 @@ say "Copying blob rendering partial to app/views/active_storage/blobs/_blob.html copy_file "#{__dir__}/../../app/views/active_storage/blobs/_blob.html.erb", "app/views/active_storage/blobs/_blob.html.erb" -say "Installing JavaScript dependency" -run "yarn add @rails/actiontext" - -APPLICATION_PACK_PATH = "app/javascript/packs/application.js" +say "Installing JavaScript dependencies" +run "yarn add #{JS_DEPENDENCIES.map { |name, version| "#{name}@#{version}" }.join(" ")}" -if File.exist?(APPLICATION_PACK_PATH) && File.read(APPLICATION_PACK_PATH) !~ /import "@rails\/actiontext"/ - say "Adding import to default JavaScript pack" - append_to_file APPLICATION_PACK_PATH, <<-EOS -import "@rails/actiontext" -EOS +if APPLICATION_PACK_PATH.exist? + JS_DEPENDENCIES.keys.each do |name| + line = %[require("#{name}")] + unless APPLICATION_PACK_PATH.read.include? line + say "Adding #{name} to #{APPLICATION_PACK_PATH}" + append_to_file APPLICATION_PACK_PATH, "#{line}\n" + end + end end diff --git a/actiontext/package.json b/actiontext/package.json index ec8f35fd3c..ee4666b85c 100644 --- a/actiontext/package.json +++ b/actiontext/package.json @@ -21,7 +21,9 @@ ], "license": "MIT", "dependencies": { - "trix": "^1.0.0", "@rails/activestorage": "^6.0.0-alpha" + }, + "peerDependencies": { + "trix": "^1.0.0" } } |