静态资源构建
外部静态资源链接
直接 script 引入即可
import React, { Component } from 'react';import HeaderComponet from './header';export default class Layout extends Component {render() {if(EASY_ENV_IS_NODE) {return <html><head><title>{this.props.title}</title><meta charSet="utf-8"></meta><meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui"></meta><meta name="keywords" content={this.props.keywords}></meta><meta name="description" content={this.props.description}></meta><link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"></link><script src="/public/lib/react-core-lib-1.0.0.min.js"></script></head><body><div id="app">{this.props.children}</div></body></html>;}return this.props.children;}}
静态资源内敛
在日常业务开发过程中,我们可能需要内联文本,JS,CSS到页面,这时我们可以通过 webpack raw-loader 把文件转成字符串,为了防止 javaScript 被转义, 可以通过 dangerouslySetInnerHTML inline javaScript 代码。https://github.com/easy-team/egg-react-webpack-boilerplate/commit/904e17ba50f68f4160ee285bfbf06400510c1da1
// inline.jsfunction inlineTest(a, b) {console.log('Egg React inline javascript');var name = 'Egg React';var title = 'Server Side Render';return name + '-' + title;}import React, { Component } from 'react';import HeaderComponet from './header';import inlineTest from 'raw-loader!./inline.js';export default class Layout extends Component {render() {const inlineCode = `function inlineCodeTest() {console.log('Egg React inline Code javascript');var name = 'Egg React';var title = 'Server Side Render';return name + '-' + title;}`;if(EASY_ENV_IS_NODE) {return <html><head><title>{this.props.title}</title><meta charSet="utf-8"></meta><meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui"></meta><meta name="keywords" content={this.props.keywords}></meta><meta name="description" content={this.props.description}></meta><link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"></link><script src="/public/lib/react-core-lib-1.0.0.min.js"></script><script dangerouslySetInnerHTML={{__html: inlineCode }}></script><script dangerouslySetInnerHTML={{__html: inlineTest }}></script><script>inlineFileTest();inlineCodeTest();</script></head><body><HeaderComponet></HeaderComponet><div id="app">{this.props.children}</div></body></html>;}return this.props.children;}}
