[英]npm run watch stuck on loading
npm run watch
將我帶到一個永遠不會加載的頁面。 這是一步一步:
laravel new my-app
開始一個新項目。 我正在使用 Laravel 5.8cd my-app && npm install
安裝依賴項。 這是package.json
文件:{
"private": true,
"scripts": {
"dev": "npm run development",
"development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "npm run development -- --watch",
"watch-poll": "npm run watch -- --watch-poll",
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
"prod": "npm run production",
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
},
"devDependencies": {
"axios": "^0.19",
"bootstrap": "^4.1.0",
"cross-env": "^5.1",
"jquery": "^3.2",
"laravel-mix": "^4.0.7",
"lodash": "^4.17.13",
"popper.js": "^1.12",
"resolve-url-loader": "^2.3.1",
"sass": "^1.15.2",
"sass-loader": "^7.1.0",
"vue": "^2.5.17"
}
}
php artisan serve
上按預期工作npm run dev
也完美編譯了 app.js 和 app.scss 當我運行npm run watch
,它會正確構建它,但我無法通過常規的localhost:3000
訪問它。 另外,我希望選項卡會在所有內容編譯完成后自動打開,但事實並非如此
所以我盡量用配置它自己browserSync
上laravel混合選項。 這是我的webpack.mix.js
文件之后:
const mix = require('laravel-mix');
/*
|--------------------------------------------------------------------------
| Mix Asset Management
|--------------------------------------------------------------------------
|
| Mix provides a clean, fluent API for defining some Webpack build steps
| for your Laravel application. By default, we are compiling the Sass
| file for the application as well as bundling up all the JS files.
|
*/
mix
.sass('resources/sass/app.scss', 'public/css')
.js('resources/js/app.js', 'public/js');
mix.browserSync('http://localhost:3000');
npm run watch
。 BrowserSync 似乎工作,我可以訪問它的用戶界面。 這是輸出: DONE Compiled successfully in 5380ms 15:18:33
Asset Size Chunks Chunk Names
/css/app.css 173 KiB /js/app [emitted] /js/app
/js/app.js 1.38 MiB /js/app [emitted] /js/app
[Browsersync] Proxying: http://localhost:3000
[Browsersync] Access URLs:
--------------------------------------
Local: http://localhost:3000
External: http://192.168.0.163:3000
--------------------------------------
UI: http://localhost:3001
UI External: http://localhost:3001
--------------------------------------
[Browsersync] Watching files...
http://localhost:3000
,它顯示一個永遠不會加載的空白頁面。 控制台沒有顯示錯誤mix.browserSync('my-app.dev')
上使用像mix.browserSync('my-app.dev')
這樣的代理選項,但它給出了DNS_PROBE_FINISHED_NXDOMAIN
錯誤上周我遇到了同樣的問題,這是由於對 BrowserSync 工作方式的誤解。
BrowserSync 中的內部服務器僅托管靜態 HTML/JS/CSS 頁面(如BrowserSync 文檔中所述)
然而,它將充當由另一個 Web 服務器提供服務的現有 Web 應用程序的代理,然后在您更新任何內容時刷新瀏覽器,從而發揮其魔力。
因此,解決方案是將 Laravel 項目托管在 Web 服務器上,然后使用npm run watch
啟動 BrowserSync。 我會推薦XAMPP因為它很容易使用
像這樣改變你的 webpack.mix
mix.browserSync('http://localhost:8000')
幾天前我遇到了這個問題,我嘗試運行Xammp Apache 服務器,它對我有用,所以試一試
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.