Laravel/Vue/Heroku - 不支持作为平台 linux 跳过“fsevents”构建

Posted

技术标签:

【中文标题】Laravel/Vue/Heroku - 不支持作为平台 linux 跳过“fsevents”构建【英文标题】:Laravel/Vue/Heroku - Skipping 'fsevents' build as platform linux is not supported 【发布时间】:2021-02-24 15:41:31 【问题描述】:

我一直在尝试在 Heroku 中使用 Vue 部署新的 Laravel,这就是我遇到的错误。

Skipping 'fsevents' build as platform linux is not supported
npm ERR! Cannot read property 'length' of undefined

...

We're sorry this build is failing! You can troubleshoot common issues here:
https://devcenter.heroku.com/articles/troubleshooting-node-deploys

Some possible problems:

- Node version not specified in package.json
    https://devcenter.heroku.com/articles/nodejs-support#specifying-a-node-js-version

Love,
Heroku

Push rejected, failed to compile Node.js app.
Push failed

我已经尝试过基本的 Heroku 故障排除指南。另外,我设法找到了这个https://dev.to/saidichlil/comment/pn49,这似乎与评论无关,但仍然试一试并确认。

顺便说一下,我是从连接到 heroku 的 github 存储库进行部署,而不是使用 Heroku CLI。

【问题讨论】:

Laravel with Vue = 我的意思是我使用 Laravel Mix 来编译。 【参考方案1】:

在您的pacakge.json 中,您需要将引擎声明为上述@jake-price 和此后期构建

"heroku-postbuild": "npm run production"

还要确保使用 heroku/php buildpack 选择了您的 heroku/nodejs 构建包

您的完整 package.json 可能看起来像这样


"private": true,
"engines": 
    "node": "12.x"
,
"scripts": 
    "dev": "npm run development",
    "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --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 --disable-host-check --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 --config=node_modules/laravel-mix/setup/webpack.config.js",
    "heroku-postbuild": "npm run production"
,
"devDependencies": 
    "@babel/preset-react": "^7.0.0",
    "axios": "^0.19",
    "bootstrap": "^4.0.0",
    "cross-env": "^7.0",
    "jquery": "^3.2",
    "laravel-mix": "^5.0.1",
    "lodash": "^4.17.19",
    "popper.js": "^1.12",
    "react": "^16.2.0",
    "react-dom": "^16.2.0",
    "resolve-url-loader": "^3.1.0",
    "sass": "^1.15.2",
    "sass-loader": "^8.0.0"


【讨论】:

【参考方案2】:

尝试将您希望 Heroku 使用的 Node 版本放入您的 package.json 中

"engines": 
    "node": "12.x"

如果这不起作用,您也可以尝试使用以下命令安装它。这将跳过可选的 fsevents 包(Linux 上不需要)

npm install --no-optional

【讨论】:

以上是关于Laravel/Vue/Heroku - 不支持作为平台 linux 跳过“fsevents”构建的主要内容,如果未能解决你的问题,请参考以下文章

如何让 PNG 透明度在本身不支持它的浏览器中工作?

Keil 大动作,Cortex-M85,不支持AC5编译器。。。

PhpStorm / WebStorm中的CoffeeScript JSDoc支持

iOS:不推荐使用的元素会继续在遗留应用程序中工作吗?

一个服务器能作多个网站嘛!

如何设计工作单元以支持批量操作并提供更多性能?