标签:put hash 实现 icp common 管理 拓展 原来 types
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"
}
标签:put hash 实现 icp common 管理 拓展 原来 types
原文地址:https://www.cnblogs.com/JCDXH/p/11667937.html