1:data数据文件经试验,需要放在生成的build文件夹中才能生效,但是应该把data文件夹先放在src中,然后如何定义config文件,让其复制过去?

  

  1. new CopyWebpackPlugin([
  2. { from: path.join(__dirname, "./src/css/i"), to: path.join(__dirname, "./build/exploit/mplus/"+config.version+"/css/i") },
  3. { from: path.join(__dirname, "./src/js/lib"), to: path.join(__dirname, "./build/exploit/mplus/"+config.version+"/js/lib") },
  4. { from: path.join(__dirname, "./src/js/data"), to: path.join(__dirname, "./build/exploit/mplus/"+config.version+"/js/data") }
  5. ])

2:对于常用的子组件在webpack中方式:(子组件改变父组件中的数据,原来是vm.data='',现在改为webpack怎么办?只能用emit?)

首先是父组件中的形式:

  1. <template>
      <h5>{{ceshidare}}</h5>
  2. <ceshi v-on:event2="event3"></ceshi>
  3. </template>
  4. <script>
  5. var jDialog = require('./j-dialog.vue');//引入j-dialog组件
  6. export default {
  7. name: 'app',//感觉没啥用
  8. data: function() {
  9. return {
  10. url: {
  11. getFloorConf: '/products/getFloorConf',//定义url链接
  12. },
  13. loadingShow: true,//定义data数据
  14. }
  15. },
  16. components: {
  17. 'j-dialog': jDialog //定义组件,在html中使用<j-dialog></j-dialog>
  18. },
      methods: {
    event3:function(){
    this.ceshidare='yang';
    }
    }
    }
  1. </script>

子组件的形式:

  1. <template>
  2. <div><button v-on:click="event">点击我</button></div>
  3. </template>
  4. <script>
  5. export default{
  6. name : 'ceshi',
  7. methods:{
  8. event:function(){
  9. this.$emit('event2');
  10. }
  11. }
  12. }
  13. </script>

3:使用npm install命令安装后,在用npm run build 然后把html放进生成的build文件夹中,最后执行npm run dev命令,本地调试

首先设置package.json文件,设置dev命令:

  1. "scripts": {
  2. "dev": "cross-env NODE_ENV=development webpack --progress --bail --colors --hide-modules && webpack-dev-server --open --hot",
  3. "build": "cross-env NODE_ENV=production webpack --hide-modules"
  4. }

其中cross-env NODE_ENV=development是设置环境变量,执行webpack命令生成build文件

  1. webpack --progress --bail --colors --hide-modules
    然后执行热更新:webpack-dev-server --open --hot
  1. if (process.env.NODE_ENV === 'production') {
  2. module.exports.devtool = '#source-map'
  3. module.exports.plugins = (module.exports.plugins || []).concat([
  4. new webpack.DefinePlugin({
  5. LOCAL_URL: JSON.stringify("")//根据执行的环境变量不同,设置接口的前缀为空
  6. }),
  7. new webpack.optimize.UglifyJsPlugin({ //压缩js代码
  8. sourceMap: true,
  9. compress: {
  10. warnings: false
  11. }
  12. }),
  13. new webpack.LoaderOptionsPlugin({//压缩css代码
  14. minimize: true
  15. })
  16. ])
  17. }else if(process.env.NODE_ENV === 'development'){
  18. module.exports.devtool = '#source-map'
  19. module.exports.plugins = (module.exports.plugins || []).concat([
  20. new webpack.DefinePlugin({
  21. LOCAL_URL: JSON.stringify("//plus.m.jd.com")//根据执行的环境变量不同,设置接口的前缀为域名
  22. }),
  23. new webpack.LoaderOptionsPlugin({//压缩js代码
  24. minimize: false
  25. }),
  26. new CleanWebpackPlugin(['build'])//因为在package.json文件中执行了两次webpack,所以在第一执行package的时候清除之前生成的文件夹
  27. //在第二次执行的webpack-dev-server没有配置环境变量,所以执行下面的else 不再清除生成的build文件夹,因为新的文件夹已经被占用
  28. ])
  29.  
  30. }else{
  31. module.exports.devtool = '#source-map'
  32. module.exports.plugins = (module.exports.plugins || []).concat([
  33. new webpack.DefinePlugin({
  34. LOCAL_URL: JSON.stringify("//plus.m.jd.com")
  35. }),
  36. new webpack.LoaderOptionsPlugin({
  37. minimize: false
  38. })
  39. ])
  40. }

对应的js可以获取到定义的全局变量:

  1. url: {
  2. getFloorConf: LOCAL_URL+'/products/getFloorConf',
  3.  
  4. }

4:不自动打开index,而是打开html文件夹,在devServer中配置:contentBase: path.join(__dirname, 'build'),:

在build文件夹中去加载index.html,如果没有index.html文件,将会在浏览器中显示所有build目录下的文件和文件夹

  1.  

使用webpack搭建vue项目中遇到的问题的更多相关文章

  1. webpack搭建vue项目开发环境【文档向学习】

    为何有这篇文章 各个社区已经有无数篇帖子介绍如何使用webpack搭建前端项目,但无论是出于学习webpack的目的还是为了解决工作实际需要都面临着一个现实问题,那就是版本更新.别人的帖子可能刚写好版 ...

  2. webpack搭建vue项目,实现脚手架功能

    本文基于node.js开发环境,安装完node之后新建项目,通过webpack配置,实现vue-cli脚手架功能 对于刚刚接触编程的人来说,最难的可能并不是学习一种新语法或者框架,而是编程思维,这种思 ...

  3. 使用Webpack搭建Vue项目

    前提: 1.  借助Node.js环境里的npm来安装, 2.  设置好npm镜像, (比如淘宝的npm镜像:输入 引用 npm install -g cnpm –registry=https://r ...

  4. webpack 搭建vue项目流程

    1.安装node 2.打开命令行输入  npm install -g vue-cli 3.vue init webpack-simple vue 4.各种确认(enter键) 5.npm instal ...

  5. webpack搭建vue项目

    链接:https://blog.csdn.net/qq_42181069/article/details/81137180 __dirname : 文件的绝对路径

  6. 在webpack搭建的vue项目中如何管理好后台接口地址

    在最近做的vue项目中,使用了webpack打包工具,以前在做项目中测试环境和生产环境的接口地址都是一样的,由于现在接口地址不一样,需要在项目打包的时候手动切换不同的地址,有时候忘记切换就要重新打包, ...

  7. element-ui和npm、webpack、vue-cli搭建Vue项目

    一.element-ui的简单使用 1.安装 1. npm 安装 推荐使用 npm 的方式安装,它能更好地和 webpack 打包工具配合使用. npm i element-ui -S 2. CDN ...

  8. 用vue-cli来搭建vue项目和webpack

    vue-cli 用vue-cli来搭建vue项目 第一步:全局安装vue-cli sudo npm install vue-cli -g 第二步:初始化一个项目 vue init webpack-si ...

  9. Mac中如何搭建Vue项目并利用VSCode开发

    (一)部署Node环境 (1)下载适合Mac环境的Node包,点击进入下载页面 (2)安装Node环境:找到下载好的Node包,这里是node-v12.14.1.pkg,我们双击它,会进入Node.j ...

随机推荐

  1. LeetCode--203--删除链表中的节点

    问题描述: 删除链表中等于给定值 val 的所有节点. 示例: 输入: 1->2->6->3->4->5->6, val = 6 输出: 1->2->3 ...

  2. Android Studio使用Gradle引入包

    方法一 jar包直接复制到lib中右击add as library,等自动构建完成后,打开build.gradle会发现dependencies中多了一个compile file('libs/***. ...

  3. hdu3374 kmp+最小表示法

    Give you a string with length N, you can generate N strings by left shifts. For example let consider ...

  4. python-day30--粘包

    一. 什么是粘包 1.须知:只有TCP有粘包现象,UDP永远不会粘包 2.所谓粘包问题主要还是因为接收方不知道消息之间的界限,不知道一次性提取多少字节的数据所造成的. 二.两种情况下会发生粘包. 1. ...

  5. Vysor_v1.6.9

    ---恢复内容开始--- 装系统 D:\home sys 触摸板驱动 1 D:\envs\common\jdk jdk安装 2 DriveTheLife 3 img 4 PCMaster 5 Sogo ...

  6. Awk 从入门到放弃(2)– 分隔符 学习笔记

    转:http://www.zsythink.net/archives/1336 学习输入分隔符FS及输出分隔符OFS 通过-v 修改内置的变量,在$1 $2 之间不指定 ‘,’, 会做合并输出.

  7. CF 459A && 459B && 459C && 459D && 459E

    http://codeforces.com/contest/459 A题 Pashmak and Garden 化简化简水题,都告诉平行坐标轴了,数据还出了对角线,后面两个点坐标给的范围也不错 #in ...

  8. [转]VirtualBox中的网络连接方式详解

    如果出现主机无法ping通虚拟机的情况,请首先确认虚拟机防火墙已关闭. 一.NAT模式 特点: 1.如果主机可以上网,虚拟机可以上网 2.虚拟机之间不能ping通 3.虚拟机可以ping通主机(此时p ...

  9. zabbix项目实践

    一,Zabbix生产环境监测案例概述 1.1 项目规划 [x] :主机分组 交换机 Nginx Tomcat MySQL Apache PHP-fpm redis(也有状态页, 自己研究) memca ...

  10. Oracle 12c新特性(For DBA)

    一: Multitenant Architecture (12.1.0.1)      多租户架构是Oracle 12c(12.1)的新增重磅特性,内建的多分租(Multi-tenancy),一个容器 ...