npm install @webpack3.6.0 -g
(全局安装)npm install @webpack3.6.0 --save-dev
(局部安装)webpack src/main.js dist/bundle.js
<script src='./dist/bundle.js'></script>
建立一个webpack.config.js文件 const path =require('path'); module.export = { //入口:能够是字符串/数组/对象,这里咱们入口只有一个,因此写一个字符串便可 entry:'./src/main.js' //出口:一般是一个对象,里面至少包含两个重要属性,path和filename output:{ path:path.resolve(__dirname,'dist')//注意:path一般是一个绝对路径 filename:'bundle.js' } }
"script":{ "build":"webpack" } //如何执行build命令 npm run build
npm install style-loader --save-dev
--save-dev表示开发时依赖,只在开发时依赖他,若是是下载vue的时候就不须要,由于vue在运行的时候也须要const path = require('path') module.exports = { entry: './src/main.js', output: { path: path.resolve(__dirname, 'dist'), filename: 'bundle.js', publicPath:"dist/" //加上这个属性,只要涉及url的东西,都会自动在前面拼接上dist/ }, module:{ rules:[ test: /\.css$/, // 使用多个loader时, 是从右向左 use: [ 'style-loader', 'css-loader' ] ] } }
npm install less-loader less --save-dev
咱们不只安装了loader还安装了less,由于webpack使用less对less文件进行编译最后在webpack.config.js中的rules内添加对象选项,用于处理less文件 { test: /\.less$/, use: [{ loader: "style-loader" // creates style nodes from JS strings }, { loader: "css-loader" // translates CSS into CommonJS }, { loader: "less-loader" // compiles Less to CSS }] }
{ loader: 'url-loader', options: { // 当加载的图片,小于limit(8kb)时,会将图片编译成base64字符串形式 // 当加载的图片,大于limit时,须要使用安装file-loader模块进行加载 limit: 8192, name:'img/[name].[hash:8].[ext]' }, }
为了处理打包后的图片,咱们在options中添加以下选项 1.img:文件要打包到的文件夹 2.name:获取图片原来的名字,放在该位置 3.hash:8 :为了防止图片名称冲突,依然使用hash,可是咱们保留8位 4.ext:使用原来的拓展名 5.eg:`name:'img/[name].[hash:8].[ext]'`
output: { path: path.resolve(__dirname, 'dist'), filename: 'bundle.js', publicPath:"dist/" //加上这个属性,只要涉及url的东西,都会自动在前面拼接上dist/ },
npm install vue --save
解决错误,在webpack中修改配置: resolve:{ alias:{ 'vue$':'vue/dist/vue.esm.js' } }
el:'#app'
下定义tamplate属性,在el中定义tamplate,tamplate模板内容会顶替掉挂载的el模板<template> <div> <h3>我是cpn组件</h3> <h3>{{ name }}</h3> </div> </template> <script > export default { name: "Cpn", data() { return { name:'conaaa' } }, } </script> <style scoped> </style>
npm install vue-loader vue-template-compiler --save-dev
修改webpack.config.js文件 { test:/\.vue$/, use:['vue-loader'] }
const HtmlWebpackPlugin=require('html-webpack-plugin')
)npm install html-webpack-plugin --save-dev
配置时咱们应该先删除以前在output中添加的publicPath属性,不然插入的script标签中的src会出错 plugins:[ new HtmlWebpackPlugin({ template:'index.html' }), ]
new uglifyjsWebpackPlugin()
npm install --save-dev webpack-dev-server@2.9.1
在webpack.config.js中的文件配置 devServer:{ contentBase:'./dist', inline:true, }
在package.json文件中设置npm命令 "scripts": { "dev":"webpack-dev-server --open" } --open:直接打开浏览器(能够不加)
举例: const uglifyjsWebpackPlugin=require('uglifyjs-webpack-plugin') const webpackMerge=require('webpack-merge') const baseconfig=require('./base.config') module.exports = webpackMerge(baseconfig,{ plugins:[ new uglifyjsWebpackPlugin() ], })
"scripts": { "test": "echo \"Error: no test specified\" && exit 1", "build": "webpack --config ./build/prod.config.js", "dev": "webpack-dev-server --config ./build/dev.config.js" }