使用npm创建react webpack 我的第一次react-app

前端之家收集整理的这篇文章主要介绍了使用npm创建react webpack 我的第一次react-app前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

这是我第一次使用react创建webapp,其中不免还是遇到了好多坑,现在来和大家分享一下这其中遇到的一些坑。。。。

首先npm这个东西我就不说了,相信网上其他的详细教程应该也不会太少,那么在创建我们的webapp之前,我们先来做一些准备工作,一下的几样东西我们先准备好。。。。

  1. $npminstallbabel-g
  2. $npminstallwebpack-g
  3. $npminstallwebpack-dev-server-g

这些全局包是我们在后面的创建app时必备的,所以我们要先准备好。。。。

那么接下来我们就要来生产webapp了,首先我们初始化npm,生产package.json文件

  1. $mkdirreactApp
  2. $cdreactApp/
  3. $npminit
  4. name:(reactApp)react-test
  5. version:(1.0.0)
  6. description:react-text
  7. entrypoint:(index.js)
  8. testcommand:
  9. gitrepository:
  10. keywords:
  11. author:
  12. license:(ISC)
  13. Abouttowriteto/Users/tianqixin/www/reactApp/package.json:
  14. {
  15. "name":"runoob-react-test","version":"1.0.0","description":"菜鸟教程react测试","main":"index.js","scripts":{
  16. "test":"echo\"Error:notestspecified\"&&exit1"
  17. },"author":"","license":"ISC"}
  18.  
  19. Isthisok?(yes)

OK,现在我们的本地应用包已经创建好了,因为在这个项目中我们是要使用rect,所以我们需要先安装他,--save命令用于将包添加至package.json文件。。。。。

  1. $npminstallreact--save
  2. $npminstallreact-dom--save

同时我们也要安装一下babel插件,这些插件的目的是为了解析jsx,至于什么是jsx我们后面再说,,,,

  1. $npminstallbabel-core--save
  2. $npminstallbabel-loader--save
  3. $npminstallbabel-preset-react--save
  4. $npminstallbabel-preset-es2015--save

好了,一些必要的插件我们已经安装成功了,那么接下来我们就可以创建文件了。。。。

  1. $touchindex.html
  2. $touchApp.jsx
  3. $touchmain.js
  4. $touchwebpack.config.js

打开webpack.config.js,我们来配置一下文件

  1. varconfig={
  2. //此处指明路口文件位置
  3. entry:'.main.js',//配置打包结果,
  4. //path配置定义了输出文件位置
  5. //filename则定义了打包结果文件名称
  6. output:{
  7. path:'./',filename:'index.js',},//设置本地服务器端口号为9001,此端口可以自己设定,但记住不能与其他服务端口重复
  8. devServer:{
  9. inline:true,port:9001
  10. },//定义了对模块的处理逻辑,这里可以用loaders定义一系列的加载器,以及一些正则,
  11. //当需要加载的文件匹配test的正则时,会调用后面的loader对文件进行处理,
  12. //所以这就是webpack骚的可怕的地方。。。。。
  13. module:{
  14. loaders:[{
  15. test:/\.jsx?$/,exclude:/node_modules/,loader:'babel',query:{
  16. presets:['es2015','react']
  17. }
  18. }]
  19. }
  20. };
  21.  
  22. module.exports=config;

然后打开package.json文件修改其中scripts的内容修改内容如下

  1. {
  2. "name":"runoob-react-test","scripts":{
  3. "start":"webpack-dev-server--hot"
  4. },"license":"ISC","dependencies":{
  5. "react":"^0.14.7","react-dom":"^0.14.7"
  6. }}

修改完成之后,我们就可以使用npm start来启动服务了。

--hot命令会在文件变化后重新载入,这样我们就不需要在代码修改之后重新刷新浏览器就能看到变化了。。。

接下来才算是正式地开始写我们的webapp,那么第一步我们要做的就是入口文件内容

在主界面设置我们的应用根元素,同时引入index.js脚本文件

  1. <!DOCTYPEhtml><html>
  2.  
  3. <head>
  4. <Metacharset="UTF-8">
  5. <title>ReactApp</title>
  6. </head>
  7.  
  8. <body>
  9. <divid="app"></div>
  10. <scriptsrc="index.js"></script>
  11. </body></html>

然后配置我们的App.jsx和main.js文件,这是我们的react组件。这个组件的任务就是输出Hello World!!!

App.jsx内容

  1. importReactfrom'react';
  2.  
  3. classAppextendsReact.Component{
  4. render(){
  5. return(
  6. <div>
  7. HelloWorld!!!<br/>
  8. </div>
  9. );
  10. }
  11. }
  12. exportdefaultApp;

main.js内容

  1. importReactfrom'react';
  2.  
  3. importReactDOMfrom'react-dom';
  4.  
  5. importAppfrom'./App.jsx';
  6.  
  7. ReactDOM.render(<App/>,document.getElementById('app'))

那么我们要注意的一点是,如果想要组件可以在任何的应用中使用,需要在创建后使用export将其导出,然后在我们需要这个组件的时候,使用import来将其导入。。。


好啦,昨晚了以上的所有步骤,那么接下来我们就运行服务

  1. $npmstart

这样我们就可以访问 http://localhost:9001 来看一下我们这个简单的webapp了

猜你在找的React相关文章