Vue2.0构建-小记

一、第一步构建

$ npm install --global vue-cli

$ vue init webpack my-project

$ cd my-project

$ npm install

$ npm run dev


注意:进行项目创建和初始化之后是没有一些依赖包的,目录中的node_moduless文件夹是没有的,这个时候我们就要进入项目的目录下,使用"npm install"来初始化依赖包,初始化需要的包都在package.json里面设置好了。

二、vue-loader

vue-loader其实就是一个webpack的loader。用来把vue组件转换成可部署的js,html,css模块。如果要想在vue项目中使用scss,要告诉vue-loader怎么样解析我的scss文件。

在webpack中,所有预处理器都要匹配相应的loader,vue-loader允许其他的webpack loader处理组件中的代码,然后它根据lang属性自动判断出要使用的loaders。 因为在新版本的vue-cli已经帮我们把sass-loader配置好了,放在了util.js里面。 所以无需在webpack.base.config.js对scss进行配置,只要安装处理sass/scss的loader,就能在vue中使用scss了。

Vue对scss的依赖:

①、首先安装依赖

$ npm install node-sass --save-dev

$ npm install sass-loader --save-dev

②、在需要用到scss的地方标注:

<style lang="scss"> </style>

三、配置文件

(1)、解释一下webpack.base.config.js,webpack.base.conf.js是一个基础的的环境配置文件,里面包含各个环境(包括开发环境,生产环境,测试环境)都需要的配置,即公用部分。比如说入口文件和输出文件这类,然后开发环境的webpack.dev.conf.js中开头位置有这么一句:

const devWebpackConfig = merge(baseWebpackConfig, // 将 webpack.dev.conf.js 的配置和 webpack.base.conf.js 的配置进行合并,这样重复的配置代码就不用写两次了。

(2)、使用两个独立的Webpack配置文件,一个用于开发(webpack.dev.conf.js),另一个用于生产(webpack.prod.conf.js),共用的配置部分放在webpack.base.conf.js中。

(3)、在build/build.js文件中定义变量:process.env.NODE_ENV = 'production'(在使用webpack和vue-cli构建的项目中,Vue会根据 process.env.NODE_ENV 决定是否启用生产环境模式,默认为开发模式)

项目目录

--build 

 --config

 --dist//npm run build 之后再生成的目录

--src 

 --components// 存放组件

--page//页面组件,由vue-router引入

--router//路由

--store// 数据流管理

main.js//入口文件

app.vue//主组件 

--static//静态文件目录

.babelrc 

 .gitignore//git忽略上传文件

index.html//静态文件入口

package.json//配置文件

main.js文件

```

importVuefrom'vue';

importAppfrom'./App';

importrouterfrom'./router';

Vue.config.productionTip =false;//开启debug模式

Vue.config.debug =truenewVue({ 

 el:'#app',

 router,// 创建和挂载根实例。记得要通过 router 配置参数注入路由

template:'<App/>', 

 components: { App 

},});

```

npm run build 后生成的dist文件访问本地static路径下的data.json数据有问题,需要修改productionSourceMap属性为false;

```

module.exports= { 

 build:{ 

 assetsSubDirectory:'static',//修改这里成你项目放置静态文件的目录

assetsPublicPath:'./',//修改这里成你项目放置静态文件的目录

productionSourceMap:false//修改为false

} }

```

异步DOM更新

如果需要拿到更新后dom中的数据,则需要通过 Vue.nextTick(callback),在DOM更新后,执行某个操作(属于DOM操作)

实例调用vm.$nextTick(function () {})

```

methods: { 

    fn() {

        this.msg ='change'this.$nextTick(function(){

            console.log('$nextTick中打印:',this.$el.children[0].innerText); 

         }) 

    }

}

```

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1 Webpack 1.1 概念简介 1.1.1 WebPack是什么 1、一个打包工具 2、一个模块加载工具 3...
    Kevin_Junbaozi阅读 11,800评论 0 16
  • 相关概念 混合开发和前后端分离 混合开发(服务器端渲染) 前后端分离后端提供接口,前端开发界面效果(专注于用户的交...
    他爱在黑暗中漫游阅读 7,995评论 4 45
  • 版权声明:本文为博主原创文章,未经博主允许不得转载。 webpack介绍和使用 一、webpack介绍 1、由来 ...
    it筱竹阅读 13,865评论 0 21
  • 秋雨绵而悠,愁云笼心头。 人生漫长旅,何处是坦途?
    静若幽兰_阅读 3,184评论 38 30
  • 本周玩练的主题是,运用一二三理论分别对关健词“时间、口才、金钱、朋友"以及自选主题录制一期60秒节目,本周我录制了...
    礼尚网来_0332阅读 1,117评论 0 0

友情链接更多精彩内容