We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
构建用于服务端渲染的代码。
同构应用是指写一份代码但可同时在浏览器和服务器中运行的应用。
webpack_server.config.js
const path = require('path'); const nodeExternals = require('webpack-node-externals'); module.exports = { // JS 执行入口文件 entry: './main_server.js', // 为了不把 Node.js 内置的模块打包进输出文件中,例如 fs net 模块等 target: 'node', // 为了不把 node_modules 目录下的第三方模块打包进输出文件中 externals: [nodeExternals()], output: { // 为了以 CommonJS2 规范导出渲染函数,以给采用 Node.js 编写的 HTTP 服务调用 libraryTarget: 'commonjs2', // 把最终可在 Node.js 中运行的代码输出到一个 bundle_server.js 文件 filename: 'bundle_server.js', // 输出文件都放到 dist 目录下 path: path.resolve(__dirname, './dist'), }, module: { rules: [ { test: /\.js$/, use: ['babel-loader'], exclude: path.resolve(__dirname, 'node_modules'), }, { // CSS 代码不能被打包进用于服务端的代码中去,忽略掉 CSS 文件 test: /\.css$/, use: ['ignore-loader'], }, ] }, devtool: 'source-map' // 输出 source-map 方便直接调试 ES6 源码 };
# 安装 Webpack 构建依赖 npm i -D css-loader style-loader ignore-loader webpack-node-externals # 安装 HTTP 服务器依赖 npm i -S express
const express = require('express'); const { render } = require('./dist/bundle_server'); const app = express(); // 调用构建出的 bundle_server.js 中暴露出的渲染函数,再拼接下 HTML 模版,形成完整的 HTML 文件 app.get('/', function (req, res) { res.send(` <html> <head> <meta charset="UTF-8"> </head> <body> <div id="app">${render()}</div> <!--导入 Webpack 输出的用于浏览器端渲染的 JS 文件--> <script src="./dist/bundle_browser.js"></script> </body> </html> `); }); // 其它请求路径返回对应的本地文件 app.use(express.static('.')); app.listen(3000, function () { console.log('app listening on port 3000!') });
The text was updated successfully, but these errors were encountered:
No branches or pull requests
构建用于服务端渲染的代码。
同构应用是指写一份代码但可同时在浏览器和服务器中运行的应用。
webpack_server.config.js
The text was updated successfully, but these errors were encountered: