第四章中,Mac 下 NPM run dev 报错问题还是解决不了,搞定的来帮个忙呗 ?

在进入第四章第 2 节时,Mac 环境下,在删除了 package.json 中 script 里的 cross-env 后执行 npm run dev 命令的时候依然报错,报错信息为:

    > @ dev /home/vagrant/Code/sample
    > npm run development

    > @ development /home/vagrant/Code/sample
    > NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js

    sh: 1: node_modules/webpack/bin/webpack.js: Permission denied
    npm ERR! code ELIFECYCLE
    npm ERR! errno 126
    npm ERR! @ development: `NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js`
    npm ERR! Exit status 126
    npm ERR!
    npm ERR! Failed at the @ development script.
    npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

    npm ERR! A complete log of this run can be found in:
    npm ERR!     /home/vagrant/.npm/_logs/2017-09-16T09_59_39_971Z-debug.log
    npm ERR! code ELIFECYCLE
    npm ERR! errno 126
    npm ERR! @ dev: `npm run development`
    npm ERR! Exit status 126
    npm ERR!
    npm ERR! Failed at the @ dev script.
    npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

    npm ERR! A complete log of this run can be found in:
    npm ERR!     /home/vagrant/.npm/_logs/2017-09-16T09_59_40_006Z-debug.log

我的 package.json 文件已经改成了:

{
    "private": true,
    "scripts": {
        "dev": "npm run development",
        "development": "NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
        "watch": "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": "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": "NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
    },
    "devDependencies": {
        "axios": "^0.16.2",
        "bootstrap-sass": "^3.3.7",
        "cross-env": "^5.0.1",
        "jquery": "^3.1.1",
        "laravel-mix": "^1.0",
        "lodash": "^4.17.4",
        "vue": "^2.1.10"
    }
}

并没有像有些人说的改了 json 再执行就会可以,有人知道解决办法吗?谢谢。

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

终于搞定了,花费了两天的时间,终于找到了问题。之前像前面的同学们说的,(Mac 下)将 scripts 里面的 4 个 cross-env 全去掉然后跑一遍后提示:
·sh: 1: node_modules/webpack/bin/webpack.js: Permission denied·
看到权限问题就 chmod 777 webpack.js 了一下,然后报错:
·Module build failed: Error: Missing binding /home/vagrant/Code/sample/node_modules/node-sass/vendor/linux-x64-57/binding.node
Node Sass could not find a binding for your current environment: Linux 64-bit with Node.js 8.x·
然后去 Stack Overflow 看到一个解决办法:
·npm rebuild node-sass·
(Stack Overflow 链接:https://stackoverflow.com/questions/379868...)
然后再次 ·npm run dev· 搞定。
希望对 Mac 下删除了 cross-env 还没用的有相同问题的同学有帮助!

6年前 评论
讨论数量: 17

终于搞定了,花费了两天的时间,终于找到了问题。之前像前面的同学们说的,(Mac 下)将 scripts 里面的 4 个 cross-env 全去掉然后跑一遍后提示:
·sh: 1: node_modules/webpack/bin/webpack.js: Permission denied·
看到权限问题就 chmod 777 webpack.js 了一下,然后报错:
·Module build failed: Error: Missing binding /home/vagrant/Code/sample/node_modules/node-sass/vendor/linux-x64-57/binding.node
Node Sass could not find a binding for your current environment: Linux 64-bit with Node.js 8.x·
然后去 Stack Overflow 看到一个解决办法:
·npm rebuild node-sass·
(Stack Overflow 链接:https://stackoverflow.com/questions/379868...)
然后再次 ·npm run dev· 搞定。
希望对 Mac 下删除了 cross-env 还没用的有相同问题的同学有帮助!

6年前 评论

感谢楼主,问题已解决,嘻嘻!

6年前 评论

专门登录上来感谢楼主的!用楼主的办法解决了这个问题!赞!

6年前 评论

我也是按教程才坑,删了 cross-env 但是还是报错

file

跟楼主不一样是not found ,试了你的方法也还是不行,真是各种坑啊

6年前 评论

@Wayne02 npm i -g cross-env试试看

6年前 评论

@willLin 我是 homestead 虚拟机下的 linux 系统

6年前 评论

@Wayne02 所以你运行试过了没有...

6年前 评论
luphp_安轮粉丝

linux下不应该把cross-env 删了么@willLin
我的删了就正常了。。

6年前 评论

之前在win10下好多命令行才解决这个问题,现在换虚拟机反而不知道怎么搞了

6年前 评论

@luphp_安轮粉丝 你是用 homestead 么?我删了报错 node_modules/webpack/bin/webpack.js: not found

6年前 评论
luphp_安轮粉丝

很明显是 node_modules中的文件下的不全造成的:解决思路是把node_modules整个文件夹删了 重新安装;npm或者yarn 换淘宝镜像就可以解决了,我之前也碰到过这个坑。。

6年前 评论

@luphp_安轮粉丝 自己的理解出问题了,安装了扩展包,然后运行,还是报错,但是页面有渲染。。
镜像源之前有改成淘宝的。
file
看了目录下没有 vendor 文件夹,不知道什么原因没有。

6年前 评论

@luphp_安轮粉丝 可以了,重新运行 yarn install --no-bin-links 这次有 vendor 文件夹了,估计是包被墙了,或可能传输时候丢失了。感谢~

6年前 评论

@luphp_安轮粉丝 嘿嘿, 我说下我的理解, NODE_ENV在不同平台下的设置方式不同, 会因为平台不同导致设置了NODE_ENV却不生效的情况, 所以就有了cross-env这个工具来解决这个问题. laravel在5.4版本之后就使用了这个工具, 这个你可以看看他的package.json里面的scripts配置项. 出现那位同学那个问题一般都是因为包下载的不完全导致的, 所以才叫那位同学单独全局安装的

这是我的理解, 如果有什么问题请指正

6年前 评论
luphp_安轮粉丝

@willLin 理解了 。。但是cross-env是为了兼容Windows 平台而做的一个兼容包貌似。。

6年前 评论

@luphp_安轮粉丝 是, Unix的是export 变量, window的好像是set 变量. 所以一般可能出现的问题要不就是node或者npm版本问题, 要不就是下载不完全的问题

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!