我試圖在heroku上部署我的reactjs rails應用程式。
Module構建失敗(from ./node_modules/babel-loader/lib/index.js)。
remote: Error: 找不到module '@babel/preset-react'
該應用程式在我的本地主機中作業正常。我試著洗掉我的node_modules檔案夾,然后運行npm install,但錯誤仍然存在(只有在heroku部署時)。
我的軟體包.json:
{
"name": "App",
"private": true。
"依賴性": {
"@rails/webpacker": "5.4.0",
"@types/react": "^17.0.18"。
"@types/react-dom": "^17.0.9",
"babel-plugin-transform-react-remove-prop-types": "^0.4.24",
"prop-types": "^15.7.2"。
"reaction": "^17.0.2",
"react-dom": "^17.0.2",
"react_ujs": "^2.6.1",
"webpack": "^4.46.0",
"webpack-cli": "^3.3.12".
},
"devDependencies": {
"@babel/plugin-syntax-jsx": "^7.14.5",
"@babel/plugin-transform-react-jsx": "^7.14.9",
"@babel/preset-env": "^7.15.0",
"@babel/preset-react": "^7.14.5",
"webpack-dev-server": "^3.11.2".
}
uj5u.com熱心網友回復:
我成功地部署了它。我的答案基于這里。為什么即使NPM_CONFIG_PRODUCTION為真,devDependencies的修剪也會被跳過?
我所做的是在NPM_CONFIG_PRODUCTION的基礎上進行的。
我的做法是:
NPM_CONFIG_PRODUCTION= false
YARN_PRODUCTION= false
YARN_CONFIG_PRODUCTION = false。
我測驗了改變ENV值,這對我來說是有效的。
這可以在heroku設定中的config vars下進行設定
。uj5u.com熱心網友回復:
Heroku默認為NODE_END=production。這對你的構建有什么影響?
你有NODE_END=production。
您在devDependencies中擁有@babel/preset-react。當你用npm i(或yarn)來安裝NODE_ENV=production的軟體包時,npm(或yarn)只安裝dependencies(它不會安裝devDependencies)。
為了解決這個問題,你可以 -
- 要么覆寫
NODE_ENV。($ NODE_ENV=development npm i) - 在構建前運行
npm i--only=dev。
為了安全起見,當你在生產環境(在你的例子中是Heroku)中運行時,將NODE_ENV的值恢復到生產環境。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/319752.html
標籤:
上一篇:如何在Heroku中部署一個tensorflow模型,并在500MB的可用空間內部署?
下一篇:用PHP執行curl請求
