我目前正在尝试在我的反应应用程序中使用Chart.js,但是当我去构建我的应用程序时,我遇到了这个错误
ERROR in ./node_modules/chart.js/dist/chart.esm.js
Module parse failed: D:\MyApp\node_modules\chart.js\dist\chart.esm.js Unexpected token (6613:12)
You may need an appropriate loader to handle this file type.
| if (intermediateIndex1 !== startIndex && intermediateIndex1 !== lastIndex) {
| decimated.push({
| ...data[intermediateIndex1],
| x: avgX,
| });
@ ./src/imports/Dashboard/Dashboard.js 21:12-31
@ ./src/App.js
@ ./src/index.js
@ multi babel-polyfill ./src/index.js
Run Code Online (Sandbox Code Playgroud)
我尝试在网上进行研究,看看其他人是否也遇到过同样的问题,但我没有运气。
下面是我的 Webpack 配置文件:
const path = require('path');
module.exports = {
entry: ['babel-polyfill', './src/index.js'],
output: {
path: path.join(__dirname, 'public'),
filename: 'bundle.js'
},
module: {
rules: [{ …Run Code Online (Sandbox Code Playgroud) 这是一个很难解释的问题,主要是因为我仍然对 git 一无所知。
我只知道能够过得去的基础知识。
目前我一直在做一个更大的项目,并在特定文件中更改了一堆行。我正在处理的更新距离提交和推送到 git 仍有一段距离。
孤独地看,最终是一个较小的更新,我必须在同一个文件中进行,现在需要推送该代码而不是当前的半工作文件。
有什么方法可以隐藏该文件的某些行,以便在我决定推送较小的更改时不会丢失对该文件所做的较大更改?
或者我是否必须存储我现在拥有的内容,然后返回文件并再次重新进行较小的更改并推送它?
对不起,如果这很难理解,这有点难以解释,而且我不知道目前是否有办法用 git 来做到这一点。
编辑
我正在研究使用单独的分支,就像第二个答案所暗示的那样。这似乎是一个更有效的解决方案,并且可以让我跟踪我的修复。
因此,我正在工作空间内处理一些项目,我注意到我的许多依赖项大约有 3 年历史,包括 React 本身。我担心的是,如果我跑步npm install,或者npm update事情可能会破裂,我可能会遇到很多问题。在我的情况下,我想知道对我来说,做npm install, npm update,还是保持原样更好?(我确信没有人会推荐)。
这是我们的 package.json 文件
{
"name": "my-app",
"version": "0.0.2",
"main": "index.js",
"license": "MIT",
"scripts": {
"start": "node src/entry",
"start-dev": "npm-run-all --parallel build babel-node",
"serve": "live-server public/",
"build-linux": "clear && webpack && clear && yarn build-server && clear && yarn start",
"build-windows": "cls && webpack && cls && yarn build-server && cls && yarn start",
"build-server": "babel src/server -d src",
"dev-server": "webpack-dev-server",
"babel-node": "nodemon --exec …Run Code Online (Sandbox Code Playgroud) 最近一周我一直在互联网上搜寻,试图找出如何发现并解决我的 React 应用程序中的内存泄漏,因为我认为我的应用程序中存在内存泄漏。我注意到我们的应用程序最近崩溃的频率越来越高,并且我继续从 Node.js: 中收到相同的错误API fatal error handler returned after process out of memory。我知道我之前的其他人开发的应用程序有一些严重的缺陷,但从来不知道它们这么糟糕,所以我决定转向互联网来尝试解决这个问题。
我查看Chrome Dev Tools并拍摄堆快照,看看内存是否有所增加,在应用程序中进行一些操作后,当我看到内存从 123MB 增加到 200+MB 时,显然内存有所增加。现在,这是确定是否存在内存泄漏的好工具,但它绝对难以阅读和理解,这无助于我确定问题出在哪里。
现在我们的 AWS 实例大小只有 1GB,我看到的关于此类问题的很多答案都是增加 Node.js 的最大空间,但这并不能解决任何问题,相反,它只是在上面贴了一个创可贴。直到问题再次出现为止,我认为这不是一个好的做法。我现在来到这里,希望有人能帮助我理解我在使用时所看到的世界Chrome Dev Tools,和/或如果有人知道更好的方法来找出我的代码中的问题所在,那将是非常好的也有帮助。提前致谢。
编辑
在我在线阅读的 javascript 中内存泄漏的所有最常见问题中,在我们的应用程序中没有任何问题让我印象深刻,所以我很困惑可能的泄漏是否来自。
另一件事是应用程序从我们的后端获取大量数据并将其保存在内存中。最大限度地减少检索的数据量是否有帮助,或者这只会减缓问题而不是解决问题?
我对React 中的useMemo和useCallback钩子相当陌生,我有点困惑为什么我的函数仍然继续重新渲染,即使我检查的变量保持不变。目前我正在尝试构建一个谷歌地图,允许用户打开和关闭地图上显示的某些标记。我的功能组件应该只需要在加载时渲染这些标记,然后在加载后记住它们,因为它们只是在之后打开/关闭。现在我理解这样的钩子只进行浅层比较的概念,但我正在比较布尔值,我认为这些钩子能够理解这些值。
这是我当前的地图文件:
// constants are above
function Map() {
const {isLoaded} = useJsApiLoader({
googleMapsApiKey: env.GOOGLE_MAPS_API.API_KEY,
libraries: libs
})
const [map, setMap] = useState(null);
const [places,setPlaces] = useState([]);
const [places2,setPlaces2] = useState([]);
const [heatMap,setHeatMap] = useState([]);
const [fetchingData, setFetchingData] = useState(true);
const [showPlaces,setShowPlaces] = useState(true);
const [showPlaces2,setShowPlaces2] = useState(false);
const [showHeatMap,setShowHeatMap] = useState(false);
useEffect(() => {
let mounted = true;
if(mounted){
socket.emit('getMapAnalytics', ([heatmap,places,places2]) => {
console.log({heatmap})
setPlaces(places);
setPlaces2(places2);
setHeatMap(heatmap);
setFetchingData(false);
});
}
return () => { …Run Code Online (Sandbox Code Playgroud) 所以这是一个非常奇怪的问题,我不希望有人真正回答这个问题,但我在这里尝试看看是否有人遇到过同样的问题。
我注意到的问题是我们的应用程序似乎正在发送重复的电子邮件。例如,我可以从我们的应用程序发送一份报告,它会发送一次该电子邮件,然后看起来就像是在一分钟后发送另一封电子邮件。
我正在使用nodemailer从我们的应用程序服务器发送电子邮件,我们在办公室Outlook v16.0.12130.20272使用的默认电子邮件是使用IMAP。这些电子邮件是通过我们的noreply电子邮件发送的,我相信它是通过GoDaddy托管的。
我自己发送了测试电子邮件并查看了网络选项卡以查看它是否可能是超时问题,但响应以 a 完成200 OK status并且时间也显示为已完成。此外,当我控制台记录响应时,它只发生一次,这让我相信它实际上只发送一封电子邮件。在主机发送电子邮件和我们的收件人实际收到它们之间一定会发生一些事情,但我不太确定。
这是server.js文件。这是smtp提出请求的地方。
var nodemailer = require("nodemailer");
const path = require('path');
const express = require('express');
const http = require('http');
const fs = require('fs');
const socketIO = require('socket.io');
const bodyParser = require('body-parser')
import env from '../env.config.json';
const PORT = require('../env.config.json').SERVER.PORT;
const publicPath = path.join(__dirname, '../public');
import api from './routers/api-routing';
//---------------------------------------------------------------------------
var smtpTransport = nodemailer.createTransport({
service: env.EMAIL.SERVICE,
host: env.EMAIL.HOST, …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个聊天系统,每次有人发送消息时,它都会添加到我的数据库中该特定人员的 JSON 数组中,但我遇到的问题是当有人尝试使用双引号或" "单引号时在他们的消息中引用'。每当添加带有这些特殊字符的消息时,我都会收到错误:ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near。我在互联网上查找过类似的问题,他们都说我需要用 转义双引号\",但当我使用JSON.stringify method.
不幸的是,这在 JSON 数组中不起作用,而是我必须将双引号替换为\\",但是当我使用该JSON.parse方法时,我在输出中看到反斜杠。如果我只使用单个斜杠,则会出现 SQL 解析错误。
发送的消息包含 ID、时间戳、消息以及发送者的姓名。
[{"ID": 1, "Timestamp": "10/20/2020 11:00 AM", "Msg": "Hello There", "Name": "John"}]
我正在尝试的一个例子如下:
let previousMessages = JSON.parse(this.state.Messages);
let newMsg = `testing double "quotes" and single quote's`
previousMessages.push({ID: previousMessages.length+1, Timestamp: new …Run Code Online (Sandbox Code Playgroud) 我在工作中维护了几个应用程序,并注意到一些员工能够使用这些应用程序的非安全路径,例如:example.com, www.example.com。使用这些路径中的任何一个都会将它们定向到该HTTP路径而不是,除非它们在 url 中HTTPS指定。HTTPS我们目前使用nginx作为我们的网关,但我没有对我们的进行初始配置nginx gateway,所以我真的不知道什么有效,什么无效。
这是我们的 nginx.conf 文件的片段
server{
listen 80 default_server;
listen [::]:80 default_server;
server_name localhost;
location / {
proxy_pass http://localhost:3000;
}
}
# Settings for a TLS enabled server.
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name localhost;
ssl_certificate "/etc/nginx/ssl/domain-crt.txt";
ssl_certificate_key "/etc/nginx/ssl/domain-key.txt";
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
## More configuration below this...
}
Run Code Online (Sandbox Code Playgroud)
我尝试在 Listen 80 部分中进行返回,但这不起作用:
server{
listen 80 default_server; …Run Code Online (Sandbox Code Playgroud) javascript ×3
node.js ×3
reactjs ×3
chart.js ×1
express ×1
git ×1
json ×1
memory-leaks ×1
mysql ×1
nginx ×1
nginx-config ×1
nodemailer ×1
npm ×1
react-hooks ×1
usecallback ×1
webpack ×1