我在 MAC 上创建了一个干净的 Laravel 应用程序。如果我执行“php artisanserve”,它会正确运行。
我尝试运行 npm run dev
并收到此错误:
> cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js
events.js:160
throw er; // Unhandled 'error' event
^
Error: spawn node_modules/webpack/bin/webpack.js ENOENT
at exports._errnoException (util.js:1018:11)
at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
at onErrorNT (internal/child_process.js:367:16)
at _combinedTickCallback (internal/process/next_tick.js:80:11)
at process._tickCallback (internal/process/next_tick.js:104:9)
at Module.runMain (module.js:606:11)
at run (bootstrap_node.js:393:7)
at startup (bootstrap_node.js:150:9)
at bootstrap_node.js:508:3
如上所示,我尝试删除node_module并重新执行npm init
,但没有帮助。
版本:
- npm 2.15.11
- Node v6.10.1
- Laravel 框架 5.4.23
这是 npm 日志:
0 info it worked if it ends with ok
1 verbose cli [ '/opt/local/bin/node', '/opt/local/bin/npm', 'run', 'dev' ]
2 info using npm@2.15.11
3 info using node@v6.10.1
4 verbose run-script [ 'predev', 'dev', 'postdev' ]
5 info predev @
6 info dev @
7 verbose unsafe-perm in lifecycle true
8 info @ Failed to exec dev script
9 verbose stack Error: @ dev: `npm run development`
9 verbose stack Exit status 1
9 verbose stack at EventEmitter.<anonymous> (/opt/local/lib/node_modules/npm/lib/utils/lifecycle.js:217:16)
9 verbose stack at emitTwo (events.js:106:13)
9 verbose stack at EventEmitter.emit (events.js:191:7)
9 verbose stack at ChildProcess.<anonymous> (/opt/local/lib/node_modules/npm/lib/utils/spawn.js:24:14)
9 verbose stack at emitTwo (events.js:106:13)
9 verbose stack at ChildProcess.emit (events.js:191:7)
9 verbose stack at maybeClose (internal/child_process.js:886:16)
9 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)
10 verbose pkgid @
11 verbose cwd /www/ui
12 error Darwin 15.6.0
13 error argv "/opt/local/bin/node" "/opt/local/bin/npm" "run" "dev"
14 error node v6.10.1
15 error npm v2.15.11
16 error code ELIFECYCLE
17 error @ dev: `npm run development`
17 error Exit status 1
18 error Failed at the @ dev script 'npm run development'.
感谢任何帮助。
最佳答案
当 mix
和 cross-env
软件包都已过期时,我遇到了此问题。我按照底部的说明进行了操作。但首先确保您拥有现代版本的软件包;我已经发布了 package.json
和我的全局 npm 包以供引用。
Package.json:
这里不需要 handlebars
或 vee-validate
,但需要其他一切。
{
"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": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"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 --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
},
"devDependencies": {
"cross-env": "^5.0.1",
"jquery": "^3.1.1",
"laravel-mix": "^1.2.1"
},
"dependencies": {
"handlebars": "^4.0.10",
"vee-validate": "^2.0.0-rc.8",
"vue": "^2.4.2"
}
}
全局 npm 包
我有这些全局包,请仔细记下版本!最近对 webpack 的包更新需要更新版本的 webpack/node。
├── n@2.1.7
├── npm@5.0.0
└── webpack@3.4.1
安装说明(遵循每个步骤非常重要!)
仔细执行每个步骤,尤其是第 2 步。
- 删除node_modules目录
- 删除 package-lock.json 文件
- 运行:$
npm install
- 运行:$
npm run dev
再试一次
此时您可以再试一次。它为我解决了所有错误。我在 GitHub 上找到了原始步骤:
https://github.com/JeffreyWay/laravel-mix/issues/623#issuecomment-315122856
关于php - 拉拉维尔 5.4 "npm run dev",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44121463/