我可以在同一个npm脚本中运行npm watch和php artisan serve吗?我尝试了以下方法:npm watch和browser-sync都能运行,但是php artisan serve没有被触发。
package.json
"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 && npm run artisan",
"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",
"artisan": "php artisan serve"
},
webpack.mix.js
mix.browserSync('http://localhost:8000/');
有几种方法可以运行多个进程。在你的情况下,也许可以在你的 package.json
:
{
...
"scripts": {
...
"serve": "php artisan serve --host=domain.test --port=8080 & npm run watch"
},
...
}
但是我更愿意在你的本地机器上使用apache或者nginx来运行你的php应用. Laravel有两个漂亮的包可以在你的本地机器上开发php应用:
Valethttps:/laravel.comdocs7.xvalet。
家园https:/laravel.comdocs7.xhomestead
当你使用其中的一个时,你不需要执行 php artisan serve
更多。
这样你也不用把你的artisan和npm脚本命令混在一起。当在同一个窗口中运行这两个命令时,它会同时输出你的php服务器和webpack输出。这就很伤人了;)package.json包含javascript配置,而artisan是基于php的。把php命令放在pack.json里感觉有点奇怪。