Vue2、webpack、express4新建vue项目

1.环境:

Vue项目通常是由webpack工具来构建,而webpack命令的执行是依赖node.js的环境的,所以首先要安装node.js。

2.新建项目:

(1)通过应用生成器工具 express-generator 快速创建一个应用的骨架。

安装express-generator :Windows键+r输入cmd运行npm install express-generator -g 

我用如下命令创建了一个名称为William的 Express 应用。

如图所示我在C:Users\thIinkpad目录下就生成了项目的骨架。

(2)在根目录下新建index.html。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div id="app"></div>
</body>
</html>

(3)在根目录下新建src文件夹,然后创建app.vue和main.js。

app.vue代码:

<template>
    <div>山下兰芽短浸溪,松间沙路净无泥。</div>
</template>
<script>
    export default {
        name: "app"
    }
</script>
<style scoped>
    div{
        margin: auto;
        text-align: center;
    }
</style>

main.js代码:

import Vue from "vue";
import App from "./app";
new Vue({
    el:'#app', 
    render:h=> h(App)
});

提示:因为我用的是WebStorm,所以要将JavaScript language version设置成ECMAScript6,不然会报错误提示。

(4)将package.json文件替换,代码如下:

{  "name": "myapp",
  "version": "0.0.0",
  "private": true,
  "scripts": {    "start": "node ./bin/www"  },
  "devDependencies": {
    "babel-core": "^6.20.0",
    "babel-loader": "^6.2.9",
    "babel-plugin-transform-runtime": "^6.15.0",
    "babel-preset-es2015": "^6.18.0",
    "babel-runtime": "^5.8.38",
    "babel-preset-stage-2": "^6.18.0",
    "html-webpack-plugin": "^2.24.1",
    "vue-html-loader": "^1.2.3",
    "css-loader": "^0.26.1",
    "vue-loader": "^10.0.2",
    "vue-template-compiler": "^2.1.6",
    "webpack": "^1.14.0",
    "webpack-dev-middleware": "^1.6.1"
  },
  "dependencies": {
    "express": "^4.14.0",
    "vue": "^2.1.6",
    "vue-router": "^2.1.1"
  }
}

注:依赖的具体作用参见 https://babeljs.io/en/setup/#webpack

(5)在根目录下新建build文件夹,在文件夹内创建webpack.base.conf.js文件,代码如下:

// nodejs 中的path模块
var path = require('path');
var webpack = require('webpack');
var HtmlWebpackPlugin = require('html-webpack-plugin');
var  webpackConf = {
    // 入口文件,path.resolve()方法,可以结合我们给定的两个参数最后生成绝对路径,最终指向的就是我们的index.js文件
    entry: {  index: [   path.resolve(__dirname, '../src/main.js')  ] },
    // 输出配置
    output: {  // 输出路径是 myProject/output/static
        path: path.resolve(__dirname, '../output'),//用来存放打包后文件的输出目录
        publicPath:'/',  filename: '[name].[hash].js'//指定资源文件引用的目录
    },
    resolve: {
        extensions: ['', '.js', '.vue'],
        alias: {   'vue': 'vue/dist/vue.js'  } // 设置别名vue1不需要设置,vue2必须设置 否则会报错
    },
    module: {
        loaders: [
            // 使用vue-loader 加载 .vue 结尾的文件
            {    test: /\.vue$/,    loader: 'vue'   },
            {    test: /\.js$/,    loader: 'babel',    exclude: /node_modules/   }  ]
    },
    vue: {  loaders: {   js: 'babel'  } },
    plugins:[
        new HtmlWebpackPlugin({
            filename: 'index.html',
            template: path.resolve(__dirname, '../index.html'),
            inject: true
        }) ]
};
module.exports  = webpackConf;

(6)在根目录下新建.babelrc文件,代码如下:

{  "presets": ["es2015","stage-2"],  "plugins": ["transform-runtime"],  "comments": false}

未完待续!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将vue-cli2项目添加ssr打包,需要进行以下步骤: 1. 首先,安装相应的依赖包。在项目根目录下运行以下命令: ``` npm install vue-server-renderer --save npm install webpack-node-externals --save-dev ``` 这样可以安装vue-server-renderer和webpack-node-externals两个依赖包。 2. 创建一个新文件,用于处理服务器端渲染。在项目根目录下创建一个`build`文件夹,并在其创建一个名为`webpack.server.config.js`的文件。在该文件,添加以下内容: ```javascript const path = require('path') const webpack = require('webpack') const nodeExternals = require('webpack-node-externals') module.exports = { target: 'node', entry: './src/server.js', // 根据实际文件名修改 output: { filename: 'server.bundle.js', path: path.join(__dirname, '../dist'), libraryTarget: 'commonjs2' }, externals: [nodeExternals()], module: { rules: [ { test: /\.js$/, loader: 'babel-loader', exclude: /node_modules/ } ] } } ``` 3. 修改package.json文件,添加相应的脚本。在`scripts`字段添加以下内容: ```json "scripts": { "build:server": "webpack --config build/webpack.server.config.js", "build": "npm run build:server && npm run build:client", "build:client": "vue-cli-service build" } ``` 这样可以添加三个命令:`build:server`用于构建服务器端渲染文件,`build:client`用于构建客户端文件,`build`用于同时构建服务器端和客户端文件。 4. 创建一个服务器端入口文件。在`src`文件夹下创建一个名为`server.js`的文件,并在其添加以下内容: ```javascript const fs = require('fs') const path = require('path') const express = require('express') const { createBundleRenderer } = require('vue-server-renderer') const server = express() const template = fs.readFileSync(path.resolve(__dirname, '../dist/index.html'), 'utf-8') const serverBundle = require('./dist/server.bundle') const renderer = createBundleRenderer(serverBundle, { template, runInNewContext: false }) server.use(express.static(path.resolve(__dirname, '../dist'))) server.get('*', (req, res) => { const context = { url: req.url } renderer.renderToString(context, (err, html) => { if (err) { console.error(err) res.status(500).end('Server error') return } res.end(html) }) }) server.listen(3000, () => { console.log('Server started at http://localhost:3000') }) ``` 在这个文件,首先引入所需的模块。然后,使用`createBundleRenderer`方法创建bundle渲染器,并传入相关参数。接着,设置静态文件目录,并处理所有请求,将渲染好的HTML返回给客户端。 5. 最后,运行`npm run build`命令进行打包。打包完成后,可以运行`node dist/server.bundle.js`启动服务器端。 至此,我们成功将vue-cli2项目添加了ssr打包。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值