We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # 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: