react代码组件化--独立封装js文件
参考文档
在浏览器端用browser.min.js编译jsx的方式很消耗时间,以下方式可将jsx语法的react代码在服务器端转换为普通的js文件,也就实现了react组件化。
一、在终端中执行命令:npm install --global babel-cli
babel-cli是babel提供的命令行转码工具,如果出现错误类似错误:
npm ERR! error rolling back code: ‘EEXIST’,
npm ERR! error rolling back path: ‘/Users/hanfeng/.nvm/v0.11.13/bin/babel’ }
npm ERR! Refusing to delete: /Users/hanfeng/.nvm/v0.11.13/bin/babel not in /Users/hanfeng/.nvm/v0.11.13/lib/node_modules/babel-cli
File exists: /Users/hanfeng/.nvm/v0.11.13/bin/babel
则rm掉相关文件夹
二、在终端中执行命令: npm install babel-preset-react
大家可能注意到了这个babel-preset-react不是全局安装的,即使为其加上–global标识进行全局安装,然后在工作目录中去执行第四个命令也是不行的,会报错,说找不到react命令。所以只能在工作目录中去安装该插件并在该工作目录下使用它。如果有其他人知道可以global中执行的话,请留言,不胜感激。
三、这里,要拆分的helloworld.html如下:
首先将jsx代码拆分出来单独放置在helloworld.js文件中,helloworld.js代码如下
四、切换到工作目录,运行命令:babel --presets react helloworld.js --watch --out-dir build
这句命令的意思是,将helloworld.js转换成普通的javascript文件,放置为build文件夹下,名字仍为helloworld.js,并且其中的–watch属性表示会时刻监控源文件的变化,自动将最新的源文件进行转换。命令执行完毕后,将会在build文件夹下看到生成了一个helloworld.js文件。
如果想批量编译,只需将helloworld.js换成想要编译的源文件的父目录名称即可,比如helloworld.js在src目录下,就执行命令babel --presets react src --watch --out-dir build
五、更改helloworld.html文件如下:
这时的helloworld.html与最开始的通过browser.min.js编译的helloworld.html效果是等同的
更多babel的使用方式可参考阮一峰老师的博文
Comments