webpack安装以及使用

webpack安装

  • 注意:请先安装node环境

建议大家这样操作(可以随时切换镜像源)

  • npm install nrm -g // 安装nrm

  • nrm ls // 查看镜像源

  • nrm use taobao // 选择淘宝镜像,也可以选择cnpm

  • npm install [email protected] -g

  • 安装路由
    npm install vue-router --save

  • 安装css
    npm install css-loader style-loader --save-dev

  • 安装less和scss (node-sass很难装,可能要按很多遍)
    npm install less less-loader sass-loader node-sass --save-dev**

  • 图片&字体安装
    npm install file-loader url-loader --save-dev

  • HTML安装
    npm install html-webpack-plugin --save-dev

  • babel安装
    npm install babel-core babel-loader babel-preset-env --save-dev

  • 单文件组件vue安装
    npm install vue --save
    npm install vue-loader vue-template-compiler --save-dev

webpack使用

根据上面的安装,所需要了解的都在下面webpack.config.js代码

  • 在webpack.config.js文件中配置,代码如下
let path = require('path')
let HtmlWebpackPlugin = require('html-webpack-plugin')
const VueLoaderPlugin = require('vue-loader/lib/plugin')
module.exports = {
  // 配置入口文件
  entry: './app.js',
  // 配置输出文件
  output: {
    // 输出路径
    path: path.join(__dirname, 'dist'),
    // publicPath表示静态资源在服务器上存放的路径
    // publicPath: '/dist',
    // 输出文件的名字
    filename: 'bundle.js'
  },
  // module字段专门用来配置各种加载器的
  module: {
    rules: [
      // 配置的是用来解析.css文件的loader(style-loader和css-loader)
      {
        // 1.0 用正则匹配当前访问的文件的后缀名是  .css
        test: /\.css$/,
        // css-loader用于处理后缀名是.css的文件
        // style-loader用来将处理完的样式添加到style标签中去
        use: ['style-loader', 'css-loader'] //webpack底层调用这些包的顺序是从右到左
      },
      // 处理less
      {
        test: /\.less$/,
        use: [{
            loader: 'style-loader'
        }, {
            loader: 'css-loader'
        }, {
            loader: 'less-loader'
        }]
      },
      // 处理scss
      {
        test: /\.scss$/,
        use: [{
            loader: 'style-loader'
        }, {
            loader: 'css-loader'
        }, {
            loader: 'sass-loader'
        }]
      },
      {
        // 处理图片 和 字体图标
        test: /\.(png|jpg|gif|eot|svg|ttf|woff)/,
        use: [{
          loader: 'url-loader',
          options: {
            // limit参数用来控制图片展示的形式,如果图片大于limit的值,就以路径形式展示,如果小于limit的值,就以base64展示 limit的单位是b
            limit: 5000
          }
        }]
      },
      // 处理es6语法
      {
        test: /\.js$/,
        // Webpack2建议尽量避免exclude,更倾向于使用include
        // exclude: /(node_modules)/, // node_modules下面的.js文件会被排除
        include: [path.resolve(__dirname, 'src')],
        use: {
          loader: 'babel-loader'
          // options里面的东西可以放到.babelrc文件中去
          // options: {
          //   "presets":["env"]
          // }
        }
      },
      // 处理vue单文件组件
      {
        test: /\.vue$/,
        loader: 'vue-loader'
      }
    ]
  },
  plugins: [
    new HtmlWebpackPlugin({
        filename: 'index.html',
        template: 'template.html',
        title: 'webpack插件学习'
    }),
    new VueLoaderPlugin()
  ]
}
  • 使用vue文件创建vue组件
<template>
  <div>
    测试页面
    <p class="myp">{{msg}}</p>
    <router-view></router-view>
  </div>
</template>
<script>
export default {
  data () {
    return {
      msg: 'hello itcast!'
    }
  }
}
</script>
<style>

</style>


  • app.js 引入组件,并将组件渲染到页面,and路由配置
import Vue from 'vue'
// 1.1 引入vue-router
import VueRouter from 'vue-router'
import App from './App.vue'
import Product from './Product.vue'

// 1.2 调用Vue.use()方法启用路由插件
Vue.use(VueRouter)

// 1.3 创建路由规则
let router = new VueRouter({
  routes: [
  // 1.4 创建product组件并引入组件
    {name: 'product', path: '/product', component: Product}
  ]
})

new Vue({
  el: '#app',
  // 1.5 注入路由
  router,
  // 1.6 去App.vue单文件组件中挖坑
  // render函数的作用,用来将指定的组件渲染到#app内部去
  // 参数h是一个函数,它有一个参数,参数就是组件
  render: h => h(App)
})
  • package.json文件配置
  • “scripts”: {
    “dev”: “webpack-dev-server --inline --hot --open --port 8090”
    }
    设置这个找到文件位置直接运行 npm run dev 就可以啦
{
  "name": "01-webpack-cli",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "dev": "webpack-dev-server --inline --hot --open --port 8090"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

  • options里面的东西可以放到.babelrc文件中去,里面可以配置其他语法,具体是啥我也搞不懂 0.0 (文件名只能是这个 .babelrc )
    { “presets”:[“env”] }

猜你喜欢

转载自blog.csdn.net/Q_MUMU/article/details/85232120