Javascript 将React组件转换为单个js文件以将其与空白html集成

Javascript 将React组件转换为单个js文件以将其与空白html集成,javascript,reactjs,webpack,ecmascript-6,babeljs,Javascript,Reactjs,Webpack,Ecmascript 6,Babeljs,react组件是使用JSX开发的。如何将其转换为浏览器可理解的JS代码并缩小为1个JS文件,以便在html中作为单个脚本标记包含?我对JS world非常陌生,听说过babel和webpack。不确定如何使用它并将其转换为相同的格式 我在react脚本构建之后生成了一些东西。但是,如果我在weblogic中将它们作为静态部署,那么图像就不起作用了。要将jsx转换为可在浏览器上运行的js代码,您必须使用babel。为此,您可以使用babel preet react(通过配置.babelrc) 完

react组件是使用JSX开发的。如何将其转换为浏览器可理解的JS代码并缩小为1个JS文件,以便在html中作为单个脚本标记包含?我对JS world非常陌生,听说过babel和webpack。不确定如何使用它并将其转换为相同的格式


我在react脚本构建之后生成了一些东西。但是,如果我在weblogic中将它们作为静态部署,那么图像就不起作用了。要将jsx转换为可在浏览器上运行的js代码,您必须使用babel。为此,您可以使用
babel preet react
(通过配置.babelrc)

完成以下步骤:

  • 运行
    npm安装babel babel cli babel preset react
  • 在项目根级别定义.lrc,包括以下内容

    {
    “预设”:[“反应”],
    }

  • 运行
    babel{jsxFile}.jsx--out{jsFile}.js


  • 要将jsx转换为浏览器可运行的js代码,必须使用babel。为此,您可以使用
    babel preet react
    (通过配置.babelrc)

    完成以下步骤:

  • 运行
    npm安装babel babel cli babel preset react
  • 在项目根级别定义.lrc,包括以下内容

    {
    “预设”:[“反应”],
    }

  • 运行
    babel{jsxFile}.jsx--out{jsFile}.js

  • 我对Js world非常陌生,听说过babel和webpack,但不知道如何使用它

    上面的陈述告诉我,最好避免设置npm构建管道。
    因此,假设您在
    jsx
    中拥有该组件,并且希望使用
    javascript
    版本,则需要对其进行“转换”。如果它是一个变化不大的组件,你可以在线查看(这也是官方网站推荐的)

    但是,如果您的组件经常更改,这种方法可能会很乏味。我可以强烈推荐开发。这是一个固执己见的工具包,它隐藏了webpack和babel配置,但同时,他们的观点也有很好的文档记录,适用于许多通用用例

    编辑 从您的评论来看,似乎您已经在使用
    react脚本
    ,那么我看到的最可能的问题是您可能忘记在您的包中指定
    主页
    属性。默认情况下,CRA假设您的静态资产托管在服务器根目录下,我假设您没有在根上下文中部署WAR,所以您需要提供一个静态位置

    我有一个类似的设置,我需要在war文件中打包使用react构建的站点,我有以下设置:

    在package.json中

    "homepage": "/<webapp_context>/build"
    
    “主页”:“//build”
    
    然后使用gradle,我将
    build
    文件夹全部复制到WAR文件中(与
    WEB-INF
    的级别相同)

    这指示
    react scripts
    在它发布的所有静态资产(如CSS、js和图像)中放置相对路径,然后导入工作

    我对Js world非常陌生,听说过babel和webpack,但不知道如何使用它

    上面的陈述告诉我,最好避免设置npm构建管道。
    因此,假设您在
    jsx
    中拥有该组件,并且希望使用
    javascript
    版本,则需要对其进行“转换”。如果它是一个变化不大的组件,你可以在线查看(这也是官方网站推荐的)

    但是,如果您的组件经常更改,这种方法可能会很乏味。我可以强烈推荐开发。这是一个固执己见的工具包,它隐藏了webpack和babel配置,但同时,他们的观点也有很好的文档记录,适用于许多通用用例

    编辑 从您的评论来看,似乎您已经在使用
    react脚本
    ,那么我看到的最可能的问题是您可能忘记在您的包中指定
    主页
    属性。默认情况下,CRA假设您的静态资产托管在服务器根目录下,我假设您没有在根上下文中部署WAR,所以您需要提供一个静态位置

    我有一个类似的设置,我需要在war文件中打包使用react构建的站点,我有以下设置:

    在package.json中

    "homepage": "/<webapp_context>/build"
    
    “主页”:“//build”
    
    然后使用gradle,我将
    build
    文件夹全部复制到WAR文件中(与
    WEB-INF
    的级别相同)


    这指示
    react scripts
    在它发布的所有静态资产(如CSS、js和图像)中放置相对路径,然后导入工作

    这是一个非常广泛的问题,目前很难回答。使用Webpack和Babel,你可以很容易地做到你想做的事情(我相信CreateReact应用程序项目通过用JS文件和index.html填充你的“dist”文件夹,就可以做到这一点)。如果管理配置太多,你可以通过运行一个没有配置的简单命令,看看哪个会给你想要的(一个html文件和一个js文件)。有像webpack/grunt/gulp这样的插件,可以获取js文件并合并/创建一个包。我的建议是,看看如何使用它们,而不是在创建脚本后立即使用它们。但在那之后,图像就不再显示了。我需要调整任何设置来提供图像吗?@Jonathon我认为问题可能是由于使用了相对路径。我已经更新了我的答案,如果没有帮助,请告诉我。在浏览器中检查网络控制台,查看其搜索图像/样式的位置,这将帮助您找到要设置的相对路径。这是一个非常广泛的问题,目前很难回答。你可以很容易地做你要求的事情