Я пытаюсь развернуть простое приложение на Heroku. Он отлично работает локально. Когда я пытаюсь обслужить его на Heroku, я получаю следующую ошибку:
ReferenceError: $ is not defined
Почему мне говорят, что проблема с $, хотя она отлично работает, когда я запускаю ее локально? Я получаю эту ошибку, когда запускаю локальную сеть heroku. Когда я пытаюсь развернуть приложение на героку, журналы сообщают мне, что оно не работает при попытке запуска npm. Хотя это проблема, я полагаю, что это не сработает, если я не запущу его локально с локальной сетью heroku. Код выглядит следующим образом:
источник/js/app.js
App = {
...
};
$(function() { // THIS IS THE FAILING LINE.
$(window).load(function() {
// App.listen(process.env.PORT || 8000);
App.init();
});
});
источник/index.html
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "utf-8">
<meta http-equiv = "X-UA-Compatible" content = "IE=edge">
<meta name = "viewport" content = "width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<link rel = "shortcut icon" type = "image/png" href = "static/favicon.ico"/>
<!-- Bootstrap -->
<link href = "css/bootstrap.min.css" rel = "stylesheet">
<link href = "css/box.css" rel = "stylesheet", type = "text/css">
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src = "https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src = "https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class = "container" style = "width: 850px;">
...
</div>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src = "js/bootstrap.min.js"></script>
<script src = "jquery.min.js"></script>
<script src = "js/app.js"></script>
<!-- <script -->
</body>
</html>
пакет.json
{
"name": "theName",
"version": "1.0.0",
"description": "",
"main": "truffle.js",
"directories": {},
"scripts": {
"dev": "lite-server"
},
"author": "Me",
"license": "MIT",
"devDependencies": {
"lite-server": "^2.3.0"
}
}
Procfile
web:node src/js/app.js
Как бы я тогда обслужил это в Heroku?
Это пахнет чем-то подозрительным с турболинками. Попробуйте поместить < "data-turbolinks-track" => false > в заголовок макета вашего приложения. Если ничего нет, попробуйте просто удалить ошибочную строку и связанную с ней }); и посмотреть, что происходит.
К сожалению, это, похоже, мало что дало.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


В узле у вас нет окна. Если вы используете JavaScript для взаимодействия с браузером, вы должны обслуживать только скрипты, а не запускать их в узле.