使用webpack搭建vue项目中遇到的问题
1:data数据文件经试验,需要放在生成的build文件夹中才能生效,但是应该把data文件夹先放在src中,然后如何定义config文件,让其复制过去?
new CopyWebpackPlugin([
{ from: path.join(__dirname, "./src/css/i"), to: path.join(__dirname, "./build/exploit/mplus/"+config.version+"/css/i") },
{ from: path.join(__dirname, "./src/js/lib"), to: path.join(__dirname, "./build/exploit/mplus/"+config.version+"/js/lib") },
{ from: path.join(__dirname, "./src/js/data"), to: path.join(__dirname, "./build/exploit/mplus/"+config.version+"/js/data") }
])
2:对于常用的子组件在webpack中方式:(子组件改变父组件中的数据,原来是vm.data='',现在改为webpack怎么办?只能用emit?)
首先是父组件中的形式:
<template>
<h5>{{ceshidare}}</h5>
<ceshi v-on:event2="event3"></ceshi>
</template>
<script>
var jDialog = require('./j-dialog.vue');//引入j-dialog组件
export default {
name: 'app',//感觉没啥用
data: function() {
return {
url: {
getFloorConf: '/products/getFloorConf',//定义url链接
},
loadingShow: true,//定义data数据
}
},
components: {
'j-dialog': jDialog //定义组件,在html中使用<j-dialog></j-dialog>
},
methods: {
event3:function(){
this.ceshidare='yang';
}
}
}
</script>
子组件的形式:
<template>
<div><button v-on:click="event">点击我</button></div>
</template>
<script>
export default{
name : 'ceshi',
methods:{
event:function(){
this.$emit('event2');
}
}
}
</script>
3:使用npm install命令安装后,在用npm run build 然后把html放进生成的build文件夹中,最后执行npm run dev命令,本地调试
首先设置package.json文件,设置dev命令:
"scripts": {
    "dev": "cross-env NODE_ENV=development webpack --progress --bail --colors --hide-modules && webpack-dev-server --open --hot",
    "build": "cross-env NODE_ENV=production webpack --hide-modules"
  }
其中cross-env NODE_ENV=development是设置环境变量,执行webpack命令生成build文件
webpack --progress --bail --colors --hide-modules
然后执行热更新:webpack-dev-server --open --hot
if (process.env.NODE_ENV === 'production') {
    module.exports.devtool = '#source-map'
    module.exports.plugins = (module.exports.plugins || []).concat([
        new webpack.DefinePlugin({
            LOCAL_URL: JSON.stringify("")//根据执行的环境变量不同,设置接口的前缀为空
        }),
        new webpack.optimize.UglifyJsPlugin({ //压缩js代码
          sourceMap: true,
          compress: {
            warnings: false
          }
        }),
        new webpack.LoaderOptionsPlugin({//压缩css代码
            minimize: true
        })
    ])
}else if(process.env.NODE_ENV === 'development'){
    module.exports.devtool = '#source-map'
    module.exports.plugins = (module.exports.plugins || []).concat([
        new webpack.DefinePlugin({
            LOCAL_URL: JSON.stringify("//plus.m.jd.com")//根据执行的环境变量不同,设置接口的前缀为域名
        }),
        new webpack.LoaderOptionsPlugin({//压缩js代码
            minimize: false
        }),
        new CleanWebpackPlugin(['build'])//因为在package.json文件中执行了两次webpack,所以在第一执行package的时候清除之前生成的文件夹
        //在第二次执行的webpack-dev-server没有配置环境变量,所以执行下面的else 不再清除生成的build文件夹,因为新的文件夹已经被占用
    ])
}else{
    module.exports.devtool = '#source-map'
    module.exports.plugins = (module.exports.plugins || []).concat([
        new webpack.DefinePlugin({
            LOCAL_URL: JSON.stringify("//plus.m.jd.com")
        }),
        new webpack.LoaderOptionsPlugin({
            minimize: false
        })
    ])
}
对应的js可以获取到定义的全局变量:
url: {
                getFloorConf: LOCAL_URL+'/products/getFloorConf',
            }
4:不自动打开index,而是打开html文件夹,在devServer中配置:contentBase: path.join(__dirname, 'build'),:
在build文件夹中去加载index.html,如果没有index.html文件,将会在浏览器中显示所有build目录下的文件和文件夹
使用webpack搭建vue项目中遇到的问题的更多相关文章
- webpack搭建vue项目开发环境【文档向学习】
		
为何有这篇文章 各个社区已经有无数篇帖子介绍如何使用webpack搭建前端项目,但无论是出于学习webpack的目的还是为了解决工作实际需要都面临着一个现实问题,那就是版本更新.别人的帖子可能刚写好版 ...
 - webpack搭建vue项目,实现脚手架功能
		
本文基于node.js开发环境,安装完node之后新建项目,通过webpack配置,实现vue-cli脚手架功能 对于刚刚接触编程的人来说,最难的可能并不是学习一种新语法或者框架,而是编程思维,这种思 ...
 - 使用Webpack搭建Vue项目
		
前提: 1. 借助Node.js环境里的npm来安装, 2. 设置好npm镜像, (比如淘宝的npm镜像:输入 引用 npm install -g cnpm –registry=https://r ...
 - webpack  搭建vue项目流程
		
1.安装node 2.打开命令行输入 npm install -g vue-cli 3.vue init webpack-simple vue 4.各种确认(enter键) 5.npm instal ...
 - webpack搭建vue项目
		
链接:https://blog.csdn.net/qq_42181069/article/details/81137180 __dirname : 文件的绝对路径
 - 在webpack搭建的vue项目中如何管理好后台接口地址
		
在最近做的vue项目中,使用了webpack打包工具,以前在做项目中测试环境和生产环境的接口地址都是一样的,由于现在接口地址不一样,需要在项目打包的时候手动切换不同的地址,有时候忘记切换就要重新打包, ...
 - element-ui和npm、webpack、vue-cli搭建Vue项目
		
一.element-ui的简单使用 1.安装 1. npm 安装 推荐使用 npm 的方式安装,它能更好地和 webpack 打包工具配合使用. npm i element-ui -S 2. CDN ...
 - 用vue-cli来搭建vue项目和webpack
		
vue-cli 用vue-cli来搭建vue项目 第一步:全局安装vue-cli sudo npm install vue-cli -g 第二步:初始化一个项目 vue init webpack-si ...
 - Mac中如何搭建Vue项目并利用VSCode开发
		
(一)部署Node环境 (1)下载适合Mac环境的Node包,点击进入下载页面 (2)安装Node环境:找到下载好的Node包,这里是node-v12.14.1.pkg,我们双击它,会进入Node.j ...
 
随机推荐
- MSSQL 一坑  SQL  Management Studio  管理工具的快捷方式被删掉了
			
如果确定已经安装的情况下,到这里去找下吧(我这里用的是sql 2008) C:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Co ...
 - Vue组件(知识)
			
form最后一节. 组件基础 组件的复用: data必须是函数 组织 通过Prop向子组件传递data 单个根元素 通过event向父组件发送消息: 使用事件抛出一个value, 在组件上用v-mo ...
 - Vue.js教程--基础(实例 模版语法template computed, watch v-if, v-show v-for, 一个组件的v-for.)
			
官网:https://cn.vuejs.org/v2/guide/index.html Vue.js 的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进 DOM 的系统. 视频教程:https: ...
 - 『Scrapy』全流程爬虫demo
			
建立好的爬虫工程如下: item.py 它用来存储解析后的响应文件: # -*- coding: utf-8 -*- # Define here the models for your scraped ...
 - python-day13--装饰器
			
1.开放封闭的原则: 1.对扩展是开放的 为什么要对扩展开放呢? 我们说,任何一个程序,不可能在设计之初就已经想好了所有的功能并且未来不做任何更新和修改.所以我们必须允许代码扩展.添加新功能. 2.对 ...
 - mac连接Windows远程桌面
			
先打开微软官方的下载面面:http://www.microsoft.com/zh-CN/download/details.aspx?id=18140 下载远程连接客户端 http://jingyan. ...
 - synchronized锁普通方法和锁静态方法
			
1.对象锁钥匙只能有一把才能互斥,才能保证共享变量的唯一性 2.在静态方法上的锁,和 实例方法上的锁,默认不是同样的,如果同步需要制定两把锁一样. 3.关于同一个类的方法上的锁,来自于调用该方法的对象 ...
 - Vue--- 手动禁止ESlint
			
使用vue-cli构建项目时,通常会问你要不要 “Use ESlint to lint your code?” 建议使用,这样会有助于规范我们的代码(这也是一种审美),ESlint的规范就不说了,写多 ...
 - learning docker steps(6)  ----- docker 镜像加速
			
http://www.docker-cn.com/registry-mirror 通过 Docker 官方镜像加速,中国区用户能够快速访问最流行的 Docker 镜像.该镜像托管于中国大陆,本地用户现 ...
 - Active MQ的初步探索
			
参考链接: http://blog.csdn.net/jiuqiyuliang/article/details/46701559 JMS是jee规范,active MQ是该规范的实现 Active M ...