Npm start как поменять браузер
I'm using npm 2.10.1 and node 0.12.4, and after cloning and running npm install , npm start does the following:
At this point it looks like I'm at a cmd.exe prompt (which is weird since I was in a bash shell before), but typing does nothing. I can press Ctrl-C twice to get back to my bash shell.
The text was updated successfully, but these errors were encountered:
Pomax commented Jul 13, 2015
cc @gvn, I'll try to install this today on my windows machine and see what's going wrong =(
gvn commented Jul 13, 2015
Pomax commented Jul 13, 2015
looks like npm explore is the culprit: what are we using it for?
gvn commented Jul 13, 2015
npm explore is used to run webmaker-core 's build script.
toolness commented Jul 13, 2015
We discussed using postinstall instead of npm explore in today's stand and people seemed in favor of it, so that's another alternative here that I'm interested in.
gvn commented Jul 13, 2015
Do post install commands run for dependencies though?
gvn commented Jul 13, 2015
Dammit. didn't mean to close.
toolness commented Jul 13, 2015
Hmmmm good question--I had assumed they did, but now I'm not sure.
gvn commented Jul 13, 2015
Also, do we really want to have to run npm install every time we want to build core?
ryanwarsaw commented Jul 13, 2015
@gvn If it can be avoided, I most definitely think removing that would be a good idea.
Pomax commented Jul 13, 2015
npm install is a one time operation. It should not be necessary to effect a build.
gvn commented Jul 13, 2015
@ryanw-se Can you clarify what you're referring to?
ryanwarsaw commented Jul 13, 2015
@gvn "Also, do we really want to have to run npm install every time we want to build core?"
toolness commented Jul 13, 2015
Yeah, in terms of re-building core for development purposes, we definitely shouldn't have to re-run npm install or anything like that. Makes me think that exposing webmaker-core 's build system via an API--or, as @thisandagain suggested a while back, a CLI--might be a better solution, but I don't think I understand the context well enough to make a good recommendation.
Pomax commented Jul 13, 2015
As alternative to npm explore , could we give webmaker-core a bin script instead, so we can just run it as an npm command like any other package?
toolness commented Jul 13, 2015
Yeah, I think a bin script is the most straightforward solution. Keeps everything working basically the same way it's already working, but makes things work on windows.
gvn commented Jul 13, 2015
@Pomax I think that's a good approach to explore. I used explore as a shortcut to writing my own CLI/bin scripts.
gvn commented Jul 13, 2015
Essentially npm explore should be doing the same thing as a bin script would (running some shell commands), but if it doesn't let's try rolling a CLI.
Pomax commented Jul 13, 2015
yeah I think I'll file a bug on this over on the npm repo too. explore is definitely not doing what it should be doing.
Pomax commented Jul 13, 2015
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
запускает сервер реакции в браузере по умолчанию, которым для меня является Firefox. Я люблю Firefox для просмотра, но предпочитаю Chrome в веб-разработке из-за его инструментов разработчика. Есть ли способ заставить "npm start" запустить сервер с Chrome, не меняя браузер по умолчанию на Chrome? Я использую Bash в Windows.
Изменить: я использовал «create-response-app» для создания своего сервера, и это добавляет скрипт в файл «packages.json» для «npm start» . Сценарий запускает сервер localhost с браузером по умолчанию. Как изменить сценарий, добавленный командой create-response-app, так, чтобы он запускался в другом браузере?
@MarkC. Извините, я не правильно понял свою проблему перед тем, как опубликовать вопрос. Сейчас я более подробно объясню, что хочу. Я использовал «create-response-app» для создания своего сервера, и это добавляет скрипт в файл «packages.json» для «npm start» . Сценарий запускает сервер localhost с браузером по умолчанию. Как изменить сценарий, добавленный командой create-response-app, так, чтобы он запускался в другом браузере?
Это возможно с помощью BROWSER переменной окружения.
Вы также можете сделать это прямо в терминале: BROWSER=chrome npm start
Это описано в документации по расширенной конфигурации :
By default, Create React App will open the default system browser, favoring Chrome on macOS. Specify a browser to override this behavior, or set it to none to disable it completely. If you need to customize the way the browser is launched, you can specify a node script instead. Any arguments passed to npm start will also be passed to this script, and the url where your app is served will be the last argument. Your script's file name must have the .js extension.
Также обратите внимание, что названия браузеров различаются на разных платформах:
The app name is platform dependent. Don't hard code it in reusable modules. For example, Chrome is google chrome on macOS, google-chrome on Linux and chrome on Windows.
запускает сервер реагирования в браузере по умолчанию, которым для меня является Firefox. Мне нравится Firefox для просмотра, но я предпочитаю Chrome в веб-разработке из-за его инструментов разработчика. Есть ли способ заставить «npm start» запускать сервер с Chrome, не меняя браузер по умолчанию на chrome? Я использую Bash в Windows.
Изменить: я использовал «create-react-app» для создания своего сервера, и это добавляет скрипт в файл «packages.json» для «npm start» . Сценарий запускает сервер localhost с браузером по умолчанию. Как изменить скрипт, добавленный «create-react-app», чтобы он запускался в другом браузере?
@МаркК. Извините, у меня не было правильного понимания моей проблемы, прежде чем публиковать вопрос. Я объясню, что я хочу более правильно сейчас. Я использовал «create-react-app» для создания своего сервера, и это добавляет скрипт в файл «packages.json» для «npm start» . Сценарий запускает сервер localhost с браузером по умолчанию. Как изменить скрипт, добавленный «create-react-app», чтобы он запускался в другом браузере?
Это возможно с помощью BROWSER переменной окружения.
Вы также можете сделать это прямо в терминале: BROWSER=chrome npm start
By default, Create React App will open the default system browser, favoring Chrome on macOS. Specify a browser to override this behavior, or set it to none to disable it completely. If you need to customize the way the browser is launched, you can specify a node script instead. Any arguments passed to npm start will also be passed to this script, and the url where your app is served will be the last argument. Your script's file name must have the .js extension.
Также обратите внимание, что имена браузеров различаются на разных платформах:
The app name is platform dependent. Don't hard code it in reusable modules. For example, Chrome is google chrome on macOS, google-chrome on Linux and chrome on Windows.
Запускает сервер реакции в браузере по умолчанию, для меня это Firefox. Мне нравится Firefox для просмотра, но я предпочитаю Chrome в веб-разработке для его инструментов разработчика. Есть ли способ заставить npm start запустить сервер с Chrome, не меняя браузер по умолчанию на chrome? Я использую Bash на Windows.
Правка . Я использовал «create-реагировать-приложение» для создания своего сервера, и это добавляет скрипт для файла "packages.json" для "запуска npm". Сценарий запускает сервер локального хоста с браузером по умолчанию. Как изменить скрипт, добавленный «create-реагировать-приложение», чтобы он запускался с другим браузером?
Это возможно с помощью переменной окружения BROWSER .
Вы также можете сделать это прямо в терминале: BROWSER=chrome npm start
По умолчанию приложение Create React откроет системный браузер по умолчанию, отдав предпочтение Chrome на macOS. Укажите браузер, чтобы переопределить это поведение, или задайте его, чтобы отключить его полностью. Если вам нужно настроить способ запуска браузера, вы можете указать вместо него скрипт узла. Любые аргументы, переданные в npm start, также будут переданы в этот скрипт, и URL, где будет показано ваше приложение, будет последним аргументом. Имя файла вашего скрипта должно иметь расширение .js.
Также обратите внимание, что имена браузеров различаются на разных платформах:
Название приложения зависит от платформы. Не пишите код жестко в многократно используемых модулях. Например, Chrome - это Google Chrome для MacOS, Google-Chrome для Linux и Chrome для Windows.
Добавьте скрипт в ваш файл package.json
Если вы являетесь пользователем Windows , перейдите в Сидя -> Приложения по умолчанию -> Веб-браузер , затем выберите нужный браузер. Если вы используете Linux затем перейдите в Системные настройки -> Детали . ( Примечание: в более старых версиях Ubuntu Сведения называется Информация о системе )
Мне не нравится многократно создавать новый файл .env или добавлять в начало npm start каждый раз с помощью дополнительной команды. Вы можете указать свой браузер вместо none в конфигурационном файле вашей оболочки. Введите в своем терминале следующие команды:
На этом этапе вы можете запустить npm start и быть счастливым.
Просто скачайте пакет оттуда и добавьте следующий код
Или вы можете просто запустить это set-default-browser chrome
В Windows cmd установите переменную env для нужного браузера:
Тогда просто запустите npm start как обычно
Чтобы открыть в Chrome, нам нужно установить его в качестве браузера по умолчанию.
Настройка -> Браузер по умолчанию -> Использовать по умолчанию ->
Часто в ходе нашей работы мы сталкиваемся с необходимостью снова и снова повторять действия пользователя, чтобы убедиться, что по мере внесения изменений на наш сайт ничего не сломалось. Для систематического и удобного решения этой задачи критически важными являются библиотеки, позволяющие создавать такие тесты. Познакомьтесь с безголовыми браузерами! Это инструменты командной строки, предоставляющие возможность программно создавать сценарии взаимодействия пользователя на сайте с последующей фиксацией их результатов для использования в тестах.
Многие из нас годами пользуются PhantomJS, CasperJS и другими инструментами. Но, как часто бывает с любовью, наши сердца могут быть завещаны другому. Начиная с Chrome 59 (60 для пользователей Windows), Chrome поставляется с собственным безголовым браузером. И хотя в настоящее время он не имеет поддержки для Selenium, он использует Chromium и движок Blink, то есть имитирует актуальный пользовательский интерфейс в Chrome.
Как всегда, код этой статьи можно найти в репозитории GitHub.
Запуск безголового Chrome из командной строки относительно прост. На Mac вы можете установить алиас для Chrome и выполнить его с помощью параметра командной строки --headless :
На Linux всё ещё проще:
Вы также можете взаимодействовать с запрашиваемой страницей, например, для вывода document.body.innerHTML в stdout:
Если вас интересно большее количество возможностей, полный список параметров можно найти здесь.
Однако данная статья не о запуске безголового Chrome в командной строке, а об его запуске в Node.js. Для этого нам понадобятся следующие модули:
- chrome-remote-interface: JavaScript API, обеспечивающее простую абстракцию для команд и уведомлений
- chrome-launcher: позволяет нам запускать Chrome из Node.js кроссплаторменно
Затем мы можем настроить нашу среду. Предполагается, что на вашем компьютере установлены Node.js и npm. Если это не так, ознакомьтесь с нашим учебным пособием.
После этого мы хотим создать сессию безголового Chrome. Начнем с создания файла index.js в нашей папке проекта:
Во-первых, мы рекваирим наши зависимости, а затем создаем самовызывающуюся функцию, которая будет порождать экземпляр сессии Chrome. Обратите внимание, что флаг --disable-gpu требуется на момент написания этой статьи, но может оказаться не нужен, когда вы будете читать это, поскольку это всего лишь обходной путь (в соответствии с рекомендацией Google). Мы будем использовать async / await , чтобы гарантировать, что наше приложение ожидает запуск безголового браузера перед выполнением следующих шагов.
Примечание: Мы будем работать с функциями, требующим окончания определенных действий перед переходом к последующим шагам. Например, отрисовки страницы или завершения ряда взаимодействий. Многие из этих шагов не блокирующие, поэтому нам нужно использовать промисы для приостановки исполнения. Подробнее об async -функциях можно прочитать на Mozilla Developer Network или на SitePoint.
Далее нам нужно выявить области (domains), которые нам нужны для нашего тестирования:
Наиболее важный здесь объект Page : мы будем использовать его для доступа к содержимому пользовательского интерфейса. С его помощью мы укажем, куда мы переходим, с какими элементами взаимодействуем, где мы запускаем наши скрипты.
После того, как мы инициализировали нашу сессию и определили наши области, мы можем начать навигацию по сайту. Для выбора точки входа мы используем домен Page , который мы включили выше, и переходим к:
Этот код загрузит страницу. Затем, используя метод loadEventFired , мы определяем шаги, которые хотим осуществить в нашем приложении для воспроизведения сценария взаимодействия пользователя. В этом примере мы просто получаем содержимое первого абзаца.
Если вы запустите скрипт с помощью node index.js , вы увидите что-то вроде этого:
Мы так же легко можем заменить код в script1 на любой другой, например, на нажимающий на ссылки, заполняющий поля форм или запускающий серию взаимодействий с помощью query -селекторов. Каждый шаг может быть сохранен в конфигурационном JSON-файле и загружен в ваши скрипты на Node.js для выполнения последовательно. Результаты этих сценариев могут быть проверены с использованием платформы тестирования, такой как Mocha, что позволяет удостовериться, что полученные значения соответствуют требованиям UI / UX.
В дополнение к вашим тестовым сценариям вы, вероятно, захотите сделать скриншоты своих страниц при навигации по сайту. К счастью, выбранная область (Page) имеет функцию captureScreenshot , которая именно этим и занимается.
Флаг fromSurface - еще один флаг, требуемый для поддержки кроссплатформенности на момент написания этой статьи и может не понадобиться в будущем.
Запустите скрипт с помощью node index.js и вы получите примерно такой результат:
Если вы пишете автоматические тесты, вы должны начать использовать безголовый Chrome. Хотя он по-прежнему не полностью интегрирован с такими инструментами, как Selenium, преимущество имитации движка рендеринга Chrome не следует недооценивать. Это лучший способ полностью воссоздать пользовательский опыт.
Читайте также: