1、vue

1.1 构建vue项目

  1. # 1.创建vue项目
  2. vue init webpack export2excel
  3. 注:1vue init 会自动执行npm init去引入node的一些基础配置
  4. 2init后会生成对应的pack.json配置文件
  5. # 2.安装依赖
  6. npm install
  7. 注:install后会自动生成package-lock.json配置文件
  8. # 3.运行vue项目
  9. npm run serve

1.2 安装相关依赖

  1. # 1.安装element-ui
  2. npm install --save element-ui
  3. # 2.安装Excel需要的依赖
  4. npm install --save xlsx file-saver

1.3 遇到的问题

Uncaught TypeError: Cannot read property ‘prototype’ of undefined?

2、vue-cli

2.1 安装Vue脚手架

  1. # 安装vue-cli
  2. npm install -g @vue/cli
  3. # 查看vue-cli版本
  4. vue --version

2.2 创建Vue2-CLI项目

  1. # vue-cli2创建项目
  2. vue init webpack 项目名称

2.3 创建Vue3-CLI项目

  1. # vue-cli3创建项目
  2. vue create 项目名称

3. webpack

3.1 安装webpack

  1. npm install webpack -g

3.2 commonjs和es6导出用法的区别:

commonjs在用的时候,只需要是node环境即可,是nodejs原生支持的,因此webpack的配置文件一般用commonjs
es6在用的时候需要加入babel-loader和babel-core来帮助解析es6语法

3.3 webpack打包

注:vue-cli打包也是基于webpack进行打包的
vue-cli会帮助我们配置webpack.config.js,并设置一些默认的属性
(vue-cli使用的webpack.config.js为./node_module/@vue/cli-service/webpack.config.js

3.3.1 初始方法

  1. 手动创建index.html文件
  2. 通过webpack ./src/main.js ./dist/bundle.js 将入口js打包到dist目录中
  3. 修改index.html中引用打包后的js

    3.3.2 webpack配置文件方法

    注:以下内容为3.3.1节的步骤二,其余步骤一样

  4. 手动创建webpack.config.js文件

  5. 复制粘贴以下内容 ```javascript const basePath = require(‘path’)

module.exports = { entry: ‘./src/main.js’,//打包的入口 output: { path: basePath.resolve(__dirname, ‘dist’), filename: ‘bundle.js’ } }

  1. 3. 通过webpack命令,会根据刚才新建的配置文件自动寻找打包的入口和出口
  2. <a name="mOUqn"></a>
  3. #### 3.3.3 关于本地webpack和全局webpack
  4. 如果直接在终端输入webpack,则用的是全局的webpack版本<br />如果使用的是npm run build,脚本中配置的buildwebpack,那么用的是本地的,即node_module中的版本<br />**所以,尽量不要直接在终端中输入webpack,而是通过node配置script来进行webpack打包**
  5. <a name="yv5YL"></a>
  6. ## 3.4 webpack.config.js 开发/测试/生产配置文件分离
  7. <a name="Z6j2W"></a>
  8. #### 3.4.1 安装webpack-merge插件
  9. ```shell
  10. npm install webpack-merge --save-dev

3.4.2 修改配置文件

新建base.config.js、dev.config.js、test.config.js、prod.config.js

  1. const webpackMerge = require('webpack-merge')
  2. const baseConfig = require('base.config.js')
  3. webpackMerge.merge(baseConfig, {
  4. })

3.4.3 修改base.config.js

  1. module.exports = {
  2. entry: './src/main.js',//打包的入口
  3. output: {
  4. path: basePath.resolve(__dirname, '../dist'), //修改打包出口位置
  5. filename: 'bundle.js'
  6. },

3.4.4 修改package.json

  1. "scripts": {
  2. "serve": "vue-cli-service serve",
  3. "build": "vue-cli-service build",
  4. "build:test": "webpack --config ./build/dev.config.js" //使用自定义配置文件
  5. },

=========================================================================================

4、其他

4.1 配置node镜像源

  1. # 配置node源
  2. npm config set registry http://registry.npm.taobao.org
  3. # 查看是否配置成功
  4. npm config get registry

4.2 为什么项目中即有commonjs语法又有es6语法

在配置文件中,引入一些nodejs环境提供的属性/变量时,需要用到commonjs语法,因为nodejs是通过commonjs导出的属性,只能用commonjs方式导入,而自定义的一些属性/配置,如果要使用es6语法,则需要加入babel来转换为浏览器支持的语法

4.3 一些常见的配置文件

4.3.1 webpack.config.js

配置打包的一些属性

  1. const basePath = require('path')
  2. module.exports = {
  3. entry: './src/main.js',//打包的入口
  4. output: {
  5. path: basePath.resolve(__dirname, 'dist'),
  6. filename: 'bundle.js'
  7. },
  8. module: {
  9. rules: [
  10. {
  11. test: /\.js$/,
  12. exclude: /(node_modules | bower_components)/,
  13. use: {
  14. loader: 'babel-loader',
  15. options: {
  16. presets: ['@babel/preset-env']
  17. }
  18. }
  19. }
  20. ]
  21. }
  22. }

4.3.2 package.json

4.3.3 package-lock.json

4.3.4 vue.config.js

基于Vue-cli3的配置文件,Vue-cli3默认提供一些初始化配置,如果想自定义一些配置,可以通过新建vue.config.js来修改其中的一些配置

4.3.5 babel.config.js

4.4 HtmlWebpackPlugin

4.4.1 安装插件

  1. npm install html-webpack-plugin --save-dev

4.4.2 修改webpack.config.js配置文件

  1. plugins: [
  2. new HtmlWebpackPlugin({
  3. template: './src/index.html'
  4. }),
  5. ]

4.4.3 修改index.html

  1. <!-- 注:不需要自己引入生成的bundle.js,html-webpack-plugin插件会自动帮我们引入 -->
  2. <!DOCTYPE html>
  3. <html lang="en">
  4. <head>
  5. <meta charset="UTF-8">
  6. <title>Title</title>
  7. </head>
  8. <body>
  9. <div id="app"></div>
  10. </body>
  11. </html>

4.4.4 删除webpack.config.js中output配置的basePath

否则插入的script标签中的src可能会有问题