1 Star 0 Fork 0

小江湖/vue-ssr

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
webpack.config.server.js 6.47 KB
一键复制 编辑 原始数据 按行查看 历史
小江湖 提交于 2018-05-20 16:54 . build
// "dev:server": "cross-env NODE_ENV=development node server/server.js", package.json
const path = require('path');
// const HtmlWebpackPlugin = require('html-webpack-plugin');
const VueLoaderPlugin = require('vue-loader/lib/plugin')
const ExtractTextPlugin = require("extract-text-webpack-plugin");
const webpack = require('webpack')
// const isDev = process.env.NOOE_ENV === 'development'
const VueServerPlugin = require('vue-server-renderer/server-plugin')
module.exports = {
mode: process.env.NOOE_ENV, // "production" | "development" | "none"
// Chosen mode tells webpack to use its built-in optimizations accordingly.
entry: "./client/server-entry.js", // string | object | array
// Here the application starts executing
// and webpack starts bundling
output: {
// options related to how webpack emits results
path: path.resolve(__dirname, "server-build"), // string
// the target directory for all output files
// must be an absolute path (use the Node.js path module)
filename: "server-entry.js", // string
// the filename template for entry chunks
publicPath: "/", // string
// the url to the output directory resolved relative to the HTML page
// library: "MyLibrary", // string,
// the name of the exported library
libraryTarget: "commonjs2", // universal module definition
// the type of the exported library
/* Advanced output configuration (click to show) */
},
module: {
// configuration regarding modules
rules: [
{
test: /\.(js|jsx|vue)$/,
loader: 'eslint-loader',
enforce: 'pre',
// include: [path.resolve('../client'), path.resolve('../test')],
exclude: /node_modules/,
options: {
formatter: require('eslint-friendly-formatter'),
// 不符合Eslint规则时只警告(默认运行出错)
// emitWarning: !config.dev.showEslintErrorsInOverlay
}
},
// rules for modules (configure loaders, parser options, etc.)
{
test: /\.vue$/,
loader: 'vue-loader',
exclude: [
path.resolve(__dirname, "node_modules")
],
options: {
hotReload: true, // 不需要设置
preserveWhitepace: true, // 去掉template的text的结尾误写的空格
}
},
{
test: /\.(jsx|js)?$/,
// include: [
// path.resolve(__dirname, "app")
// ],
exclude: [
path.resolve(__dirname, "node_modules")
],
// these are matching conditions, each accepting a regular expression or string
// test and include have the same behavior, both must be matched
// exclude must not be matched (takes preferrence over test and include)
// Best practices:
// - Use RegExp only in test and for filename matching
// - Use arrays of absolute paths in include and exclude
// - Try to avoid exclude and prefer include
// issuer: { test, include, exclude },
// conditions for the issuer (the origin of the import)
// enforce: "pre",
// enforce: "post",
// flags to apply these rules, even if they are overridden (advanced option)
loader: "babel-loader",
// the loader which should be applied, it'll be resolved relative to the context
// -loader suffix is no longer optional in webpack2 for clarity reasons
// see webpack 1 upgrade guide
// options: {
// presets: ["es2015"]
// },
// options for the loader
},
{
test: /\.(css|scss)$/,
use: ExtractTextPlugin.extract({
fallback: "style-loader",
use: [{
loader: "css-loader",
options: {
/* ... */
}
},
{
loader: "sass-loader",
}]
})
// use: [
// // apply multiple loaders and options
// "style-loader",
// {
// loader: "css-loader",
// options: {
// /* ... */
// }
// },
// {
// loader: "sass-loader",
// }
// ]
},
],
/* Advanced module configuration (click to show) */
},
resolve: {
// options for resolving module requests
// (does not apply to resolving to loaders)
modules: [
"node_modules",
// path.resolve(__dirname, "app")
],
// directories where to look for modules
extensions: [".js", ".json", ".jsx", ".css", ".vue", ".scss"],
// extensions that are used
// alias: {
// // a list of module name aliases
// // "module": "new-module",
// // alias "module" -> "new-module" and "module/path/file" -> "new-module/path/file"
// // "only-module$": "new-module",
// // alias "only-module" -> "new-module", but not "only-module/path/file" -> "new-module/path/file"
// "vue": path.resolve(__dirname, "./node_modules/vue/dist/vue.js"),
// },
/* alternative alias syntax (click to show) */
/* Advanced resolve configuration (click to show) */
},
// performance: {
// hints: "warning", // enum
// maxAssetSize: 200000, // int (in bytes),
// maxEntrypointSize: 400000, // int (in bytes)
// assetFilter: function(assetFilename) {
// // Function predicate that provides asset filenames
// return assetFilename.endsWith('.css') || assetFilename.endsWith('.js');
// }
// },
devtool: "source-map", // enum
// enhance debugging by adding meta info for the browser devtools
// source-map most detailed at the expense of build speed.
// context: __dirname, // string (absolute path!)
// the home directory for webpack
// the entry and module.rules.loader option
// is resolved relative to this directory
target: "node", // enum
// the environment in which the bundle should run
// changes chunk loading behavior and available modules
externals: Object.keys(require('./package.json').dependencies),
// Don't follow/bundle these modules, but request them at runtime from the environment
// stats: "errors-only",
// lets you precisely control what bundle information gets displayed
plugins: [
// ...
new ExtractTextPlugin("styles.css"),
new VueLoaderPlugin(),
new webpack.DefinePlugin({
'process.env.NODE_ENV': process.env.NODE_ENV || 'development',
'process.env.VUE_ENV': 'server',
}),
new VueServerPlugin()
],
// list of additional plugins
/* Advanced configuration (click to show) */
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/loveiiii/vue-ssr.git
git@gitee.com:loveiiii/vue-ssr.git
loveiiii
vue-ssr
vue-ssr
master

搜索帮助

23e8dbc6 1850385 7e0993f3 1850385