为什么新的 Rails 7.0.2.4 应用程序附带 bin/dev,而 Rails 7.0.3 应用程序却没有?

问题描述 投票:0回答:2

我注意到一个新的

Rails 7.0.2.4
应用程序附带了一个名为
bin/dev
的文件,而新的
Rails 7.0.3
应用程序似乎没有附带该文件。

我认为运行

bin/dev
而不是
rails server
会在本地主机上预编译 JavaScript(因此在开发中编辑 JavaScript 时,它比 Rails 服务器更可取),但我不明白为什么它适用于某些 Rails 版本而不适用于其他版本?我确信它可以与其他一些轨道机械一起工作,但我不确定是哪些部件。

(抱歉,这是一个基本问题)

ruby-on-rails
2个回答
11
投票
当执行任何相应的安装命令时,

cssbundling-rails
jsbundling-rails
tailwindcss-rails
都会添加或修改bin/devProcfile.dev

bin/rails css:install:[tailwind|bootstrap|bulma|postcss|sass]

https://github.com/rails/cssbundling-rails/blob/v1.1.0/lib/install/install.rb#L53

bin/rails javascript:install:[esbuild|rollup|webpack]

https://github.com/rails/jsbundling-rails/blob/v1.0.2/lib/install/install.rb#L44

bin/rails tailwindcss:install

https://github.com/rails/tailwindcss-rails/blob/v2.0.8/lib/install/tailwindcss.rb#L51

运行时

rails new
有两个选项默认添加这些gem并执行它们的安装命令:

-j, [--javascript=JAVASCRIPT] # Choose JavaScript approach [options: importmap (default), webpack, esbuild, rollup]
                              # Default: importmap
-c, [--css=CSS]               # Choose CSS processor [options: tailwind, bootstrap, bulma, postcss, sass... check https://github.com/rails/cssbundling-rails]

-j
选项将addjsbundling-rails(除非指定了importmap)并将运行此方法

def run_javascript
  return if options[:skip_javascript] || !bundle_install?

  case adjusted_javascript_option
  when "importmap"                    then rails_command "importmap:install"

  # NOTE: this command will add `bin/dev`
  when "webpack", "esbuild", "rollup" then rails_command "javascript:install:#{adjusted_javascript_option}"

  end
end

-c
选项将addtailwindcss-railscssbundling-rails并将运行此方法:

def run_css
  return if !options[:css] || !bundle_install?

  if !using_node? && options[:css] == "tailwind"

    # NOTE: this command will add `bin/dev`
    rails_command "tailwindcss:install"

  else

    # NOTE: and this command will add `bin/dev`
    rails_command "css:install:#{options[:css]}"

  end
end

如果省略

-j
选项,rails 默认安装
importmap-rails
,并且执行 bin/rails importmap:install 时,不会添加
bin/dev


另外

bin/dev
只运行
foreman start -f Procfile.dev
foreman
同时运行多个命令。查看 Procfile.dev 以查看正在运行哪些命令。

css: bin/rails tailwindcss:watch  # added by `tailwindcss-rails`

css: yarn build:css --watch       # added by `cssbundling-rails`

js: yarn build --watch            # added by `jsbundling-rails`

0
投票

即使在我使用此方法并尝试运行 bin/dev 后,我也会收到此错误

$ ./bin/dev
/c/Users/user/AppData/Local/Microsoft/WindowsApps/foreman: line 6: /c/Users/user/AppData/Local/Microsoft/WindowsApps/ruby: No 
such file or directory

我不知道为什么,如果您有任何答案,请帮忙。

© www.soinside.com 2019 - 2024. All rights reserved.