小编Ben*_*ves的帖子

ReactJS:如何在本地服务器上部署

我有一个使用NodeJS + Express + GraphQL + MongoDB后端和ReactJS + Apollo前端开发的Web应用程序.我想在本地部署此应用程序.这甚至可能吗?

我遇到过几十个"如何部署到Heroku","如何部署到数字海洋","如何部署到Github"等等.但没有一个解释如何在本地部署.

现在,我运行:nodemon server用于后端,npm start用于前端.我看到应用程序正在运行http://localhost:3000/(我使用cors将前端连接到在端口3001上运行的服务器).

我想去http://localhost:3000/看看应用程序,而不必执行命令npm startnodemon server.这可能吗?如果是这样,我该怎么做?

据我所知,我们的本地服务器不是WAMP服务器(我们的操作系统是Windows).IT部门告诉我,这是一个

[...]普通的旧服务器.地址是在端口3000上运行的localhost.如果需要,可以在3001上打开另一个端口.把你的东西放在C:盘上,你应该好好去.我从来没有听说过Node或React,所以如果你有疑问我就无法帮助.

有任何想法吗?非常感谢您的帮助!

UPDATE

对于我正在寻找的东西似乎有些混乱.我试图在本地部署它.

比方说,在您的本地计算机(家中的笔记本电脑)上,您可以在自己喜欢的浏览器上访问localhost:3000.除非你在什么时候向localhost提供服务,否则什么都不会出现,它会说"拒绝连接"或其他东西.我想要的是每当我去localhost:3000时能够打开网络上的任何机器,我的反应网站出现并且功能......这更有意义吗?

我不希望这是开发模式.我想在localhost上构建这个项目......我开始认为这是不可能的.

deployment localhost mongodb node.js reactjs

12
推荐指数
2
解决办法
4364
查看次数

带有空格的 Axios GET 请求参数

目标

我想使用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 …

javascript react-redux axios

8
推荐指数
1
解决办法
6571
查看次数

如何在开发中自动删除console.logs()?

问题

尝试对一个旧的 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)

javascript reactjs eslint gulp

6
推荐指数
1
解决办法
5754
查看次数

绝对导入:React 和 Typescript

背景

我有一个使用create-react-app和打字稿引导的 React 应用程序。随着应用程序的增长,(目标)我想实现绝对导入。我正在使用 VS Code(Visual Studio Code)并且配置很少,我得到了 TS 和 VS Code 来识别我的绝对导入。

对于 TS,我采取了以下步骤tsconfig.json

  • 将“baseUrl”更改为“client”: "baseUrl": "client"
  • 将“客户端”添加到我的include密钥中:"include": ["./**/*.ts", "./**/*.tsx", "client"]

对于 VS Code,我更改了我的用户设置:Typescript -> Preferences: Import Module Specifier -> non-relative

那效果很好。我所有的进口都使用绝对进口,没有错误。但是,当我运行该应用程序时,出现错误:Error: Cannot find module "component"我希望看到我的应用程序,就像我在绝对导入之前所做的那样。

我试过的

想通了,错误是 webpack 或 babel 问题。

  1. 创建的env文件

    将以下内容添加到应用程序根目录中的 env 文件(与我的 package.json 相同的位置)

NODE_PATH=client/
Run Code Online (Sandbox Code Playgroud)

那没有用。同样的错误:Error: Cannot find module "components"。还尝试将 NODE_PATH 更改为 REACT_APP_NODE_PATH 也不起作用。

  1. 修改 Babel 配置

    添加了 babel 插件模块解析器 …

typescript reactjs webpack babeljs

1
推荐指数
1
解决办法
6873
查看次数