1
以下のエラーコードが表示されていますが、これを修正する方法はわかりません。私は実際に私のウェブサイト上で反応するようにwebpackを設定することになっているのか分かりません。設定が非常に混乱します。私はhttps://github.com/shakacode/react_on_railsのガイドを使用してみましたが、この問題を解決するために非常に役立つものは見つかりませんでした。Webpacker React.jsセットアップ問題アセットがHerokuデプロイ時にコンパイルされない
/bin/webpack.rb
#!/usr/bin/env ruby
$stdout.sync = true
require "shellwords"
require "yaml"
ENV["RAILS_ENV"] ||= "development"
RAILS_ENV = ENV["RAILS_ENV"]
ENV["NODE_ENV"] ||= RAILS_ENV
NODE_ENV = ENV["NODE_ENV"]
APP_PATH = File.expand_path("../", __dir__)
CONFIG_PATH = File.join(APP_PATH, "config/webpack/paths.yml")
begin
paths = YAML.load(File.read(CONFIG_PATH))[NODE_ENV]
NODE_MODULES_PATH = File.join(APP_PATH.shellescape, paths["node_modules"])
WEBPACK_CONFIG_PATH = File.join(APP_PATH.shellescape, paths["config"])
rescue Errno::ENOENT, NoMethodError
puts "Configuration not found in config/webpack/paths.yml"
puts "Please run bundle exec rails webpacker:install to install webpacker"
exit!
end
WEBPACK_BIN = "#{NODE_MODULES_PATH}/.bin/webpack"
WEBPACK_CONFIG = "#{WEBPACK_CONFIG_PATH}/#{NODE_ENV}.js"
newenv = { "NODE_PATH" => NODE_MODULES_PATH }
cmdline = [WEBPACK_BIN, "--config", WEBPACK_CONFIG] + ARGV
Dir.chdir(APP_PATH) do
exec newenv, *cmdline
end
エラーメッセージ
remote: Compiling webpacker assets
remote: ./bin/webpack:34:in `exec': No such file or directory - /tmp/build_5db4fafc0f5caa97d269dc06d8db2330/node_modules/.bin/webpack (Errno::ENOENT)
remote: from ./bin/webpack:34:in `block in <main>'
remote: from ./bin/webpack:33:in `chdir'
remote: from ./bin/webpack:33:in `<main>'
remote: rake aborted!
remote: JSON::ParserError: A JSON text must at least contain two octets!
remote: /tmp/build_5db4fafc0f5caa97d269dc06d8db2330/vendor/bundle/ruby/2.2.0/gems/json-1.8.6/lib/json/common.rb:155:in `initialize'
remote: /tmp/build_5db4fafc0f5caa97d269dc06d8db2330/vendor/bundle/ruby/2.2.0/gems/json-1.8.6/lib/json/common.rb:155:in `new'
remote: /tmp/build_5db4fafc0f5caa97d269dc06d8db2330/vendor/bundle/ruby/2.2.0/gems/json-1.8.6/lib/json/common.rb:155:in `parse'
remote: /tmp/build_5db4fafc0f5caa97d269dc06d8db2330/vendor/bundle/ruby/2.2.0/bundler/gems/webpacker-42db6f7806f2/lib/tasks/webpacker/compile.rake:14:in `block (2 levels) in <top (required)>'
remote: /tmp/build_5db4fafc0f5caa97d269dc06d8db2330/vendor/bundle/ruby/2.2.0/bundler/gems/webpacker-42db6f7806f2/lib/tasks/webpacker/compile.rake:30:in `block in <top (required)>'
remote: /tmp/build_5db4fafc0f5caa97d269dc06d8db2330/vendor/bundle/ruby/2.2.0/gems/rake-12.0.0/exe/rake:27:in `<top (required)>'
remote: Tasks: TOP => webpacker:compile
remote: (See full trace by running task with --trace)
remote: !
remote: ! Precompiling assets failed.
remote: !
が、(良いです)tempディレクトリに構築しているように見えますが、それはWebPACKのを呼び出す前に 'NPMのinstall'を実行していないよう:
は、ここで私のもの。 –
これは私のルートファイルpackage.jsonに含める必要がありますか?私はそれを以下のスクリプトのような場所に置くことができますか? "スクリプト":{ "postinstall": "cd client &&糸のインストール"、 "rails-server": "echo 'http:// localhost:3000/hello_world' && foreman start -f Procfile.dev"、 "test": "rspec" }、 – ByteMe
私はこの環境に精通していません。渡す際のエラーの原因が 'No such file or directory - /tmp/build_5db4fafc0f5caa97d269dc06d8db2330/node_modules/.bin/Webpackでした私はそれを指摘すると思った。 'exec newenv、" npm "、" install "と試してみることもできますが、それはちょうど私が推測していることであり、慣用的ではないかもしれません。ネストされた 'package.json'を持っているなら、あなたのアイデアはうまくいくはずです。 –