Как убить приложение VueJS, работающее на локальном хосте: 8080 (MacOS)

Моя среда: MacOS Mojave

Я создал приложение VueJS из их шаблонов, используя

vue init pwa frontend
? Project name frontend
? Project short name: fewer than 12 characters to not be truncated on homescreens (default: same as name)
? Project description A Vue.js project
? Author [email protected]
? Vue build runtime
? Install vue-router? Yes
? Use ESLint to lint your code? No
? Setup unit tests with Karma + Mocha? No
? Setup e2e tests with Nightwatch? No

yarn
yarn dev

Это работало нормально. Страница работала на локальном хосте: 8080 и закрывалась при нажатии Ctrl-C.

Затем я построил его для производства

yarn build

Я написал быстрый JS-сервер для запуска содержимого из папки dist/, чтобы посмотреть, как оно выглядит после его сборки.

const ora = require('ora')
const chalk = require('chalk');
const express = require('express');
const port = process.env.PORT || 8080;
const app = express();
const spinner = ora(chalk.yellow("Your application is starting..."));
spinner.start();

var delay = ( function() {
    var timer = 0;
    return function(callback, ms) {
        clearTimeout (timer);
        timer = setTimeout(callback, ms);
    };
})();

app.use(express.static(__dirname + "/dist/"));
app.get(/.*/, function(req, res) {
    res.sendFile(__dirname + "/dist/index.html");
});

app.listen(port);

delay(function() {
    app.use(express.static(__dirname + "/dist/"));
    app.get(/.*/, function(req, res) {
        res.sendFile(__dirname + "/dist/index.html");
    });
}, 3000);

spinner.stop();
console.log(chalk.cyan("Your application is running here: ") + ("http://localhost:8080"));

Я запускаю сервер node server.js

Однако, когда я нажимаю ctrl-c, он убивает скрипт, однако приложение все еще работает на локальном хосте: 8080.

Я пробовал sudo lsof -i tcp:8080 и netstat -vanp tcp | grep 8080, и они оба ничего не дали. Что оставляет меня со следующим вопросом: как мне остановить это от прослушивания порта 8080?


person Kevin Patrick    schedule 26.10.2018    source источник
comment
Попробуйте эту команду lsof -ti:8080 | xargs kill -9   -  person Gowthaman    schedule 26.10.2018
comment
Не работает, так как lsof -ti:8080 не возвращает никаких результатов.   -  person Kevin Patrick    schedule 26.10.2018
comment
Как вы определяете, что он все еще работает?   -  person ceejayoz    schedule 26.10.2018
comment
Я перехожу на localhost:8080, и приложение все еще работает.   -  person Kevin Patrick    schedule 26.10.2018
comment
Можешь попробовать npx kill-port 8080?   -  person Alican Balik    schedule 27.10.2018
comment
@AlicanBalik Я запустил команду, она все еще работает. не понимаю в чем дело   -  person Kevin Patrick    schedule 27.10.2018
comment
Я испытывал то же самое несколько раз (не только для vue). Нет процесса, использующего порт, но браузер по-прежнему отображал страницу. В моем случае принудительная перезагрузка браузера правильно привела к странице «не удалось подключиться».   -  person softbear    schedule 28.10.2018


Ответы (1)


Если кому было интересно, я нашел проблему. Я должен был пойти в chrome://serviceworker-internals и chrome://appcache-internals. Я выполнил поиск localhost:8080 и убил этих сервисворкеров.

Надеюсь, это поможет тому, с кем это случится дальше!

person Kevin Patrick    schedule 28.10.2018