我有一个django后端和react.js前端以及webpack。我按照这个页面在本地设置了所有内容:http://owaislone.org/blog/webpack-plus-reactjs-and-django/并让我的开发服务器运行,所有都是桃子。对于我的生产webpack文件,我复制了与网站上完全相同的文件。
但是我想部署到heroku,这就是我被卡住的地方。我是否需要在生产中使用某种快速服务器替换我的webpack-dev-server?
我可以运行django并提供静态javascript文件吗?要生成这些文件我试过运行:“webpack webpack-config.prod.js --progress -p” 但是我得到了一堆“无法解决模块'fs'”错误,但我注意到它在assets / bundles中生成了一个900kb的js文件。
此外,如果我尝试在我的本地计算机上运行“webpack webpack-config.prod.js --progress -p”(没有开发服务器)并转到django路由,我会在我的控制台中运行:
获取http://localhost:3000/assets/bundles/main-62ddfced1c44b3270fa7.js net :: ERR_CONNECTION_REFUSED
我花了几个小时才开始工作,设置开发环境的速度要快得多。我在这里做错了什么?
答案 0 :(得分:0)
如果你已经使用--save-dev
标志安装了任何依赖项,就像你链接到的指南那样建议那么它们将不会安装在heroku上,因为它运行npm install
并设置了生产标志。因此,如果您的package.json中fs
位于devDependencies
下,则不会安装。
据我所知,这里有两种选择。您可以将生成的bundle置于版本控制之下,以便将其推送到heroku 或,您只需使用--save
标志即可安装依赖项。我个人更喜欢使用--save
如果我将在heroku上发布,然后添加一个名为heroku-postbuild
的package.json脚本,它运行webpack并构建包。
"scripts": {
"heroku-postbuild": "npm run dist",
},