Не удается выполнить страницу с «main», но работающую с явным путем

#javascript #node.js

#javascript #node.js

Вопрос:

Я новичок в Node, поэтому, вероятно, из-за моего невежества я делаю что-то другое, чем я думаю. По той же причине я не увидел ничего полезного, когда погуглил проблему.

Когда я запускаю свою страницу следующим образом

узел app/index.js

он работает и отображает правильный текст в браузере, когда я направляюсь к localhost: 3001. Затем я попытался указать в файле JSON путь следующим образом

«start»: «app/index.js «, …

и выполнение узла без каких-либо аргументов. Я понимаю, что, поскольку аргументы не указаны, программа должна искать что-либо в файле конфигурации.

Я заметил, что когда я указываю путь явно, я ничего не получаю в консоли, и она «зависает». Но когда я использую только узел, появляется скобка, как если бы он чего-то ждал. Хотя понятия не имею, что…

По какой-то причине этого не происходит, и страница не может быть показана. Что я могу с этим поделать?

Ответ №1:

start команда в вашем package.json файле должна выглядеть примерно так — "start": "node app/index.js" . И затем, чтобы запустить его, вам нужно выполнить npm start . node команда без параметров просто помечает node-repl. Подробнее о npm и package.json в npmjs.

main Параметр в вашем package.json используется в качестве точки входа в ваш пакет. Для запуска разных скриптов вам следует использовать node [path_to_script] .

Поле main — это идентификатор модуля, который является основной точкой входа в вашу программу. То есть, если ваш пакет называется foo, и пользователь устанавливает его, а затем требует («foo»), тогда будет возвращен объект экспорта вашего основного модуля.

Комментарии:

1. Вы абсолютно правы. Я имел в виду, однако, спросить о main , а не о start . Так сказано в названии, но в вопросе, который я вставил неправильно. Извините за путаницу — я очень новичок во всем этом. Хотите еще раз взглянуть на это, пожалуйста?

2. Как я знаю, nodemon без параметров выполняется main файл, но я не думаю, что это то, что вы ищете.

3. Я запустил ее в PowerShell, но команда не была распознана. Возможно, это потому, что я на Windows 10. Или, может быть, я просто неправильно понимаю смысл main . Вы хотите сказать, что правильный способ запустить мое веб-приложение (на локальном хосте) — это выполнить npm start ?

4. ДА. Укажите команду в package.json ..."start": "node app/index.js"... , а затем просто запустите npm start .

5. Потрясающая информация. Мне это кажется настолько нелогичным, потому что NPM — это просто менеджер пакетов, и это узел, который должен запускать приложение. Конечно, я вижу, как он выполняет путь к узлу , но это похоже на переход через реку за водой, хе-хе. Ответ принят.