区分 webpack 中导入 vue 和普通网页使用 script 导入 Vue 的区别| 学习笔记

简介: 快速学习区分 webpack 中导入 vue 和普通网页使用 script 导入 Vue 的区别

开发者学堂课程前端自动化构建工具 Webpack区分 webpack 中导入 vue 和普通网页使用 script 导入 Vue 的区别】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/587/detail/8228


区分 webpack 中导入 vue 和普通网页使用 script 导入Vue 的区别

目录:

一、如何在 webpack 创建的项目中,使用 Vue 进行开发

二、在 使用 webpack 构建的 vue 项目中使用模板对象

 

一、如何在 webpack 创建的项目中,使用 Vue 进行开发

1、打开一个新的项目,找到代码文件夹,在代码文件夹里面找到

webpack-syudy 项目,右键打开项目。

//入口文件

Console.log(ok)

先运行一下,看看结果有没有ok

image.png

里面有ok,就证明项目可以正常运行。

2.如何在 webpack 创建的项目中,使用 Vue 进行开发

1)复习 在普通页面中如何让使用vue:

·使用 script 标签,引入 vue 的包(script导入的包功能最全)

·在index页面中,创建一个idapp div容器

·通过new Vue得到一个vm的实例

2)在 pack 里面使用 vue:

① 先安装一个包

PS C:\VusersUliulongbinNDesktopday6代码182.webpack vue1>npm i vue-s

② vue这个包安装到项目并且运行起来:

[.............]/normalizeTree:sill  install loadCurrentTree

npm NARN 01.webpack-study@1.0.0 NO description
npm IARN01.webpack-study@1.0.0 NO repository field.
PS C:UsersliulongbinDesktoplday61/14102.webpack-vue

运行结果:

[HPR] Waiting for update signal from WDS ...ok
[WDS] Hot Module Replacement enabled.

3.weback 中尝试使用 vue:

1)在 weback 中尝试使用 vue:

Import vue fromvue’   得到vue的构造函数

Var xm=new vue({ 创建vue实例

el:#app挂载节点

Data:{

Msg:123

}

}}

Var vm = new Vue({

el:’#app

data:{

msg:123

}

})

viewport content=width=device-width,initial-scale=0.1>

X-UA-Compatibel content=ie=edge>

Document

</code><code><span class="lake-fontsize-1515" style="color: black;">”<span>./lib/vue-2.4.0.js</span>”<span>>

<--这是容器-->

app>

{{msg}}

运行结果:

you are using the runtime-only build  of  vue提醒正在使用runtime_only 运行时的包,并不是最全的vue的包,在网页中通过 script 标签导入的 vue 的包是最全的,但是在 import 导入的包所得到的全局的vue不一样,这个vue 功能不全。

import Vue fromVue vue功能不全,所以不支持这种用法。

//注意:

webpack 中,使用import Vue fromVue 导入的 vue 构造函数,功能不完整,只提供了runtime-only的方式,并没有提供像网页中那样的使用方式。如果就使用网页中提供的方式:

就需要修改vue包得到的对象

举例:

Var vue=require(‘vue’)require vue的时候有一个查找规则。

Import Vue from vue

2)回顾 包的查找规则:

1、找根本根目录有没有node_modules 的文件夹

2、找 node_modules 中根据包名,对应的 vue 文件夹

3、在vue文件夹中,找一个叫做 package.json 的包配置文件

4、在 package.json 文件中,查找一个 main 属性

main属性指定了这个包在被加载的时候的入口文件。如果要 import 这个 vue 没有问题,那 import 是哪个文件的就需要用 main 来指定。只要指定了main,那就是通过 main 指定的文件得到的。

找到main属性:

(vue函数就是从dist/vue.runtime.common.js中得到的,如果执行dist/vue.runtime.common.js这个文件,就会像外暴露一个对象) 

3)怎样找 main 属性

第一步:打开 node_modules文件夹,

第二步:找到 vue 开头的文件夹,

第三步:在 vue 文件夹里面找到package.json  右键打开,

第四步:找 mian 属性

"license": "MIT",
'main": " dist/vue.runtime.common.js",'

(指向的属性前面没有带根路径,相对于当前这个文件来说有一个dist目录,vue这个文件就是从dist/vue.runtime.common.js这个文件里面得到的。

maintainers' :[
"name": "yyx990803",
"email": "yyx990803@gmail.com"
"module": " dist/vue.runtime.esm.js",

(·执行dist/vue.runtime.common.js这个文件就会向外暴露一个对象,暴露的对象就是vue"name": "vue" ,
" optionalDependencies": 0,
"publish_ time": 1507926074556,
"readme": "ERROR: No README data found!"

4)暴露的对象:

·在dist文件夹中,就有 dist/vue.runtime.common.js 这个文件。

·除了导入的这个文件的包,还有 vue.js文件,vue.js 文件就是在网页中用script标签导入的js.功能最全的是 vue.js

·所以如果想用网页中的语法,就必须导入vue.js这个包。

·这两个包的体积是不一样的,一个是200kb,一个是273kb

·vue.runtime.common.js 是严格版的,

怎样导入vue.js这个包:

5)导入vue.js这个包的方式:

·第一种(方式更优雅):

直接把 mian 这个属性指向导入包的 runtime.common.js 这种方式是最简单的。或者可以给它一个路径:

Import vue from ../node_modules/vue/dist/vue.js这样也可以。

运行结果:

123

(如果想使用最全的方式,就必须手动导入vue.js)

 

第二种:import vue from vue

直接导入vue,但是可以在webpack中添加一个节点,和plugins,module平级,加一个resolve

resolve:{
alias:{//
修改vue被导入的时候的包的路径

"vue$": "vue/dist/vue.js "

}

}

运行结果:

123

所以这种方式也可以.


二、在 使用 webpack 构建的 vue 项目中使用模板对象

1.wcbpack.config,ja中添加resolov属性

Resolov{

Alias{

vue$:vue.esm.js

}

}

Module.exports={

Entry:path.join(_dirname,./src/main.js),//入口文件

Output:{//指定输出选项

}

Plugins:[//所有webpack插点的配置节点

],

Module:{//配置所有第三方loader模块

}

resolve:{

alias:{//修改vue被导入时候的报的路径

vue$:vue/dist/vue.js

相关文章
|
2月前
|
前端开发 JavaScript
webpack 中 loader 和 plugin 的区别
在 webpack 中,loader 用于转换模块的源代码,如将 TypeScript 转为 JavaScript;而 plugin 则扩展了 webpack 的功能,可以执行更复杂的任务,如优化打包文件、注入环境变量等。两者共同作用于构建流程的不同阶段。
|
2月前
|
JavaScript 前端开发 API
Vue 3 中 v-model 与 Vue 2 中 v-model 的区别是什么?
总的来说,Vue 3 中的 `v-model` 在灵活性、与组合式 API 的结合、对自定义组件的支持等方面都有了明显的提升和改进,使其更适应现代前端开发的需求和趋势。但需要注意的是,在迁移过程中可能需要对一些代码进行调整和适配。
142 60
|
4月前
|
JavaScript
在 Vue 3 组件通信方式中,Provide / Inject 与 Vuex 的区别是什么?
在 Vue 3 组件通信方式中,Provide / Inject 与 Vuex 的区别是什么?
224 65
|
3月前
|
JavaScript
webpack学习三:webpack初始化整合配置vue,一步一步的抽离代码块整合vue。
这篇文章是关于如何在webpack环境中配置Vue.js,包括安装Vue.js、解决报错、理解el与template的区别、使用SPA模式、抽离模板为对象、封装为单独的js文件、安装vue-loader时遇到的问题及解决方案,以及整个过程的总结。
116 2
webpack学习三:webpack初始化整合配置vue,一步一步的抽离代码块整合vue。
|
2月前
|
缓存 前端开发 JavaScript
Webpack 4 和 Webpack 5 区别?
【10月更文挑战第23天】随着时间的推移,Webpack 可能会继续发展和演进,未来的版本可能会带来更多的新特性和改进。保持对技术发展的关注和学习,将有助于我们更好地应对不断变化的前端开发环境。
|
3月前
|
JavaScript 前端开发 开发者
Vue v-for 进阶指南:in 与 of 的区别及应用场景 | 笔记
Vue.js 中的 v-for 是强大的遍历指令,但其中的 in 和 of 关键字往往被开发者忽视。尽管它们的用法相似,但适用的场景和数据结构却各有不同。本文将详细探讨 v-for 中 in 和 of 的区别、适用场景以及在实际开发中的最佳使用时机。通过理解它们的差异,你将能够编写更加高效、简洁的 Vue.js 代码,灵活应对各种数据结构的遍历需求。
148 6
|
3月前
|
缓存 JavaScript
Vue 中 computed 与 method 的区别
【10月更文挑战第15天】computed 和 method 是 Vue 中两个重要的选项,它们在功能和特点上存在着明显的区别。理解并合理运用它们的区别,可以帮助我们构建更高效、更具可维护性的 Vue 应用。在实际开发中,要根据具体情况灵活选择使用,以满足不同的需求。
52 2
|
4月前
|
JavaScript 测试技术 Windows
vue配置webpack生产环境.env.production、测试环境.env.development(配置不同环境的打包访问地址)
本文介绍了如何使用vue-cli和webpack为Vue项目配置不同的生产和测试环境,包括修改`package.json`脚本、使用`cross-env`处理环境变量、创建不同环境的`.env`文件,并在`webpack.prod.conf.js`中使用`DefinePlugin`来应用这些环境变量。
281 2
vue配置webpack生产环境.env.production、测试环境.env.development(配置不同环境的打包访问地址)
|
4月前
|
JavaScript 前端开发 IDE
Vue学习笔记5:用Vue的事件监听 实现数据更新的实时视图显示
Vue学习笔记5:用Vue的事件监听 实现数据更新的实时视图显示
|
4月前
|
JavaScript 前端开发 API
Vue学习笔记4:用reactive() 实现数据更新的实时视图显示
Vue学习笔记4:用reactive() 实现数据更新的实时视图显示