Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在react应用程序中禁用文件监视 编辑:_Node.js_Reactjs_Npm - Fatal编程技术网

Node.js 如何在react应用程序中禁用文件监视 编辑:

Node.js 如何在react应用程序中禁用文件监视 编辑:,node.js,reactjs,npm,Node.js,Reactjs,Npm,我现在的问题是,是否可以在类似于生产环境的环境中启动带有react脚本的react应用程序,在这种环境中,我不一定希望对文件的更改影响正在运行的react服务器。在C下的“解决方案”部分查看下面关于我已经尝试过的内容的简要说明 在过去的两周里,我一直在为这个问题苦苦挣扎,我不确定如何继续。我想在Azure Web App(Linux)节点上托管我的React应用程序 我看到的问题是: 尝试的解决方案: 在网上阅读了这个问题后,我了解到解决方案可能包括 答:系统上没有空间。我已经用df-h进行了检

我现在的问题是,是否可以在类似于生产环境的环境中启动带有react脚本的react应用程序,在这种环境中,我不一定希望对文件的更改影响正在运行的react服务器。在C下的“解决方案”部分查看下面关于我已经尝试过的内容的简要说明

在过去的两周里,我一直在为这个问题苦苦挣扎,我不确定如何继续。我想在Azure Web App(Linux)节点上托管我的React应用程序

我看到的问题是: 尝试的解决方案: 在网上阅读了这个问题后,我了解到解决方案可能包括

答:系统上没有空间。我已经用
df-h
进行了检查,看起来有足够的空间(我的机器至少有50%)

B:已达到文件观察者限制,这似乎是问题所在,但不幸的是Azure Web应用程序是一个只读文件系统,运行类似于
echo fs.inotify.max_user_watches=524288 | sudo tee-a/etc/sysctl.conf&&sudo sysctl-p
的程序没有帮助

C:禁止使用React进行监视。但我似乎无法做到这一点,如果有人知道如何禁用React观看,我将不胜感激。到目前为止,我尝试了
CI=true npm start
但没有成功(当我运行命令并对文件进行更改时,更改会主动反映在我的浏览器上:
localhost:3000

我还尝试在
node\u modules/react scripts/webpack.config.js
中添加大量选项,例如:
监视:false
忽略:/node\u模块/

谢谢,
Nik

我建议您重新考虑您的目标
,即在类似于生产的环境中启动带有react脚本的react应用程序

正如
@adamz4008
提到的,您不应该在生产环境中运行development server。因此,您不会遇到监视问题,也不需要解决它

文件/最佳做法 根据软件开发最佳实践,有不同的开发阶段

Facebook React文档也涵盖了这些内容

  • 在当地发展

    npm开始
    /
    纱线开始

    开发模式运行应用程序

  • 构建

    npm运行构建
    /
    纱线构建

    将用于生产的应用程序生成到生成文件夹

    它正确地捆绑生产模式下反应,并优化构建以获得最佳的性能

    构建被缩小,文件名包括散列

    您的应用已准备好部署

    安装NPM依赖项

    顺便说一句,通常人们在
    npm运行build
    之前运行
    npm install
    来安装所有必要的依赖项

    但我建议使用
    npmci
    。它具有确定性的稳定结果和更高的性能

  • 发布/部署

    由于您的应用程序只是一组静态文件,您可以简单地将其作为静态HTML网站部署到任何web服务器/平台

  • 我的经验 在我使用Azure的实践经验中,我将React应用程序作为静态网站部署到存储帐户(无需明确使用/配置任何web服务器)


    您可以选择任何其他选项。

    因此,您可以创建构建文件,然后使用小型本地服务器为目录中的静态文件提供服务

    您可以运行
    纱线构建
    ,然后有一个脚本来运行此代码
    纱线节点。/server.js
    (或任何您命名的脚本)

    这可以允许performant构建和类似于
    react脚本启动的DevServer的服务器

    我也不知道您是否需要在生产环境中进行评测,但我在
    react scripts build--profile
    中添加了一个特性,它允许类名和函数名在整个过程中保持不变

    const express=require(`express`);
    require(`dotenv`).config();
    快报()
    .use(express.static(`${\uu dirname}/build`)
    .get(`*`,(req,res)=>res.sendFile(`${u dirname}/build/index.html`)
    .listen(process.env.PORT | | | 1234,()=>console.log(`uuuu服务器运行`uuuuuu`,process.env.PORT),
    );
    
    对于简单的情况(您的应用驻留在服务器根目录中,您没有客户端路由,您不必代理后端调用):

    • 这是第一次使用
      添加--dev http server安装http服务器
    • 使用
      warn Build构建应用程序
    • 使用http服务器为构建的应用程序提供服务。/build

    对于更复杂的情况,可以使用更高级的Web服务器,如其他答案中所述,也可以自己实现所需的行为。

    如果不希望实时重新加载,在生产环境中运行开发服务器的动机是什么?dev server/react脚本并不用于为产品提供服务在React应用程序上。如果它需要在生产环境中运行,为什么不简单地运行npm构建和托管静态资产?如果没有SSR,为什么React应用程序需要一个单独的节点服务器,而不是简单的Azure存储、S3等?这是一个好主意@adamz4008。所有在线指南都说要在Azure和上托管整个项目Azure将运行npm start。但是,由于Azure发生了变化,这些指南已经过时,并且它们没有解释哪个操作系统、哪个运行时环境等。也就是说,我将非常满意为最终构建提供服务。为此,我需要在Azure Web应用程序上进行客户端路由,我尝试了几次,但都没有成功erent web.config结构。您对此有经验吗?添加的约束:需要是Azure web app for Company
    Starting the development server...
    
    events.js:170
          throw er; // Unhandled 'error' event
          ^
    
    Error: ENOSPC: System limit for number of file watchers reached, watch 'xxx'
        at FSWatcher.start (internal/fs/watchers.js:165:26)
        at Object.watch (fs.js:1274:11)
        at createFsWatchInstance (/home/u/work/some-repo/node_modules/chokidar/lib/nodefs-handler.js:37:15)
        at setFsWatchListener (/home/u/work/some-repo/node_modules/chokidar/lib/nodefs-handler.js:80:15)
        ...
    npm ERR! code ELIFECYCLE
    npm ERR! errno 1
    npm ERR! some-repo@0.1.0 start: `react-scripts start`
    npm ERR! Exit status 1
    npm ERR! 
    npm ERR! Failed at the some-repo@0.1.0 start script.
    npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     /home/u/.npm/_logs/2019-08-30T09_50_59_595Z-debug.log