日常

ケ・セラ・セラ

Railsでnpmを使う今の所のやり方

自分の場合こうやっていますというものです。

Rails.root に普通に package.json を置き、普通に npm install する .gitignore で /node_modules などしておく

application.js はどうしているかというと、 特に問題無ければ require_tree . で全部対象にすればよい。 後述するが、これでは node_modules 以下も全部対象に なってしまうので、それではまずい場合には個別に指定するなど変更する。

//= require_tree .

/node_modules を assets.paths に追加する

# config/initializers/assets.rb
Rails.application.config.assets.paths << Rails.root.join("node_modules")

precompile 対象に必要なものを追加する

config/application.rb
   config.assets.precompile += %w(
     foo.js/*.js
     foo.js/css/bar.css
   )

こんな感じに使います

<%= stylesheet_link_tag "foo.js/css/bar.css", media: "all" %>
<%= javascript_include_tag "foo.js/js/foo.js" %>
<%= asset_path("foo.js/js/bar.js") %>