我有一个使用NodeJS + Express + GraphQL + MongoDB后端和ReactJS + Apollo前端开发的Web应用程序.我想在本地部署此应用程序.这甚至可能吗?
我遇到过几十个"如何部署到Heroku","如何部署到数字海洋","如何部署到Github"等等.但没有一个解释如何在本地部署.
现在,我运行:nodemon server用于后端,npm start用于前端.我看到应用程序正在运行http://localhost:3000/(我使用cors将前端连接到在端口3001上运行的服务器).
我想去http://localhost:3000/看看应用程序,而不必执行命令npm start和nodemon server.这可能吗?如果是这样,我该怎么做?
据我所知,我们的本地服务器不是WAMP服务器(我们的操作系统是Windows).IT部门告诉我,这是一个
[...]普通的旧服务器.地址是在端口3000上运行的localhost.如果需要,可以在3001上打开另一个端口.把你的东西放在C:盘上,你应该好好去.我从来没有听说过Node或React,所以如果你有疑问我就无法帮助.
有任何想法吗?非常感谢您的帮助!
UPDATE
对于我正在寻找的东西似乎有些混乱.我试图在本地部署它.
比方说,在您的本地计算机(家中的笔记本电脑)上,您可以在自己喜欢的浏览器上访问localhost:3000.除非你在什么时候向localhost提供服务,否则什么都不会出现,它会说"拒绝连接"或其他东西.我想要的是每当我去localhost:3000时能够打开网络上的任何机器,我的反应网站出现并且功能......这更有意义吗?
我不希望这是开发模式.我想在localhost上构建这个项目......我开始认为这是不可能的.
我想使用axios. 参数值是一个字符串类型的变量并且有空格。
似乎axios是以我的后端不理解的格式对参数进行编码。我已经对axios编码进行了研究,它似乎axios将空格编码为 a+而不是%20。
假设您有以下请求:
const whitespace = "white space";
const encodeWhitespace = encodeURI(whitespace);
const noSpace = "no";
axios.get('/api', {
params: {
'foo': 'bar',
'bar': 'hello world',
'space': whitespace,
'encode': 'hello%20world',
'encoded': encodeWhitespace,
'simple': noSpace
}
}
Run Code Online (Sandbox Code Playgroud)
参数foo, bar, encode, simple都可以工作并使用正确的数据生成响应。参数space, encoded不会生成正确的数据。请求以 200 成功,但不返回任何数据。
我使用相同的查询在 Postman 中创建了相同的请求,以查看是否GET返回了预期的结果并且确实如此。我%20在 Postman 中添加了它,它返回得很好。我+在 Postman 中添加了它,它也返回了预期的结果。
变量实现可能会出什么问题?如果没有像barparam这样的变量,我就无法做到这一点,因为该值正在传递给一个函数(Redux …
尝试对一个旧的 React 应用程序进行 lint,该应用console.logs()程序的代码库中有 30 多个代码。我分别设置了 linter 和代码格式化程序 ESLint 和 Prettier。
这个设置效果很好,它向我展示了console.logs()源代码中的位置。但是,--fixESLint 的标志不会删除日志。有什么办法可以自动删除console.logs()吗?我看过有关如何通过 webpack 执行此操作以防止日志投入生产的文章,但是,我想在预提交或预推送挂钩中尽早删除这些内容。
我尝试使用设置脚本gulp-strip-debug。它因断言错误而失败。当我将 src 路径从 更改为 时,'./src/**.js'我'./**.js'没有收到断言错误,但什么也没有发生。
从 Jun711 博客了解到这一点。“如何以编程方式从 JavaScript 文件中删除控制台日志?” 博客文章。
吞咽文件
gulpfile.js: 项目根目录
const gulp = require('gulp');
const stripDebug = require('gulp-strip-debug');
gulp.task(
'strip-debug',
() =>
gulp
.src('./src/**.js') // input file path
.pipe(stripDebug()) // execute gulp-strip-debug
.pipe(gulp.dest('./')) // output file path
);
Run Code Online (Sandbox Code Playgroud)
包.json
{
"name": "end-the-pandemic",
"version": …Run Code Online (Sandbox Code Playgroud) 我有一个使用create-react-app和打字稿引导的 React 应用程序。随着应用程序的增长,(目标)我想实现绝对导入。我正在使用 VS Code(Visual Studio Code)并且配置很少,我得到了 TS 和 VS Code 来识别我的绝对导入。
对于 TS,我采取了以下步骤tsconfig.json:
"baseUrl": "client"include密钥中:"include": ["./**/*.ts", "./**/*.tsx", "client"]对于 VS Code,我更改了我的用户设置:Typescript -> Preferences: Import Module Specifier -> non-relative
那效果很好。我所有的进口都使用绝对进口,没有错误。但是,当我运行该应用程序时,出现错误:Error: Cannot find module "component"我希望看到我的应用程序,就像我在绝对导入之前所做的那样。
想通了,错误是 webpack 或 babel 问题。
创建的env文件
将以下内容添加到应用程序根目录中的 env 文件(与我的 package.json 相同的位置)
NODE_PATH=client/
Run Code Online (Sandbox Code Playgroud)
那没有用。同样的错误:Error: Cannot find module "components"。还尝试将 NODE_PATH 更改为 REACT_APP_NODE_PATH 也不起作用。
修改 Babel 配置
添加了 babel 插件模块解析器 …
reactjs ×3
javascript ×2
axios ×1
babeljs ×1
deployment ×1
eslint ×1
gulp ×1
localhost ×1
mongodb ×1
node.js ×1
react-redux ×1
typescript ×1
webpack ×1