Hyperstack doesn't work in production

オープン
#416 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
35/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
停滞
技術スタック
javascript, rails, react

調査の方向性

hyper-component-1.0.alpha1.8/lib/hyper-component.rb:7 から始め、bundle exec rake assets:precompile を使って本番アセットのフローを再現し、その後 localhost:3000 を開きます。sprockets-rails が react_ujs/package.json をどのように解決するかを確認し、本番ページが報告されている require is not defined エラーなしで読み込まれることを確認します。

索引モデルが issue の本文から書いたものです。

説明

Reproduction steps:

  • create a new hyperstack project

  • compile assets with bundle exec rake assets:precompile

  • start server in production environnment

  • Open your browser on localhost:3000

Expected result

Page should load without javascript errors

Actual result:

The page is blank with the following error:

Uncaught ReferenceError: require is not defined

Solution

I think this is due to the following line:

hyper-component-1.0.alpha1.8/lib/hyper-component.rb:7

Hyperstack.js_import 'react_ujs', defines: 'ReactRailsUJS'

sprockets-rails opens node_modules/react_ujs/package.json in order to determine the file to insert in application.js.
Unfortunally "main" is equal to react_ujs/index.js and this file contains "var React=require("react")"
I don't understand why "main" is not equal to react_ujs/dist/react_ujs.js.

My solution is to replace hyper-component-1.0.alpha1.8/lib/hyper-component.rb:7 by:

Hyperstack.js_import 'react_ujs/react_ujs/dist/react_ujs.js', defines: 'ReactRailsUJS'

主要言語
JavaScript
スター
538
フォーク
41
PR マージ指標
30日以内にマージされた PR はありません

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

hyperstack-org/hyperstack のほかの issue

hyperstack-org/hyperstack の issue をすべて見る

似ている issue

JavaScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。