一直很好奇一件事,vue项目开发时我们都会通过cnpm install来安装项目的相关依赖,到了生产环境,我们只需要把项目打包,然后放到线上服务器就能运行。为什么在线上服务器就不用安装相关依赖就可以运行了?
一直很好奇一件事,vue项目开发时我们都会通过cnpm install来安装项目的相关依赖,到了生产环境,我们只需要把项目打包,然后放到线上服务器就能运行。为什么在线上服务器就不用安装相关依赖就可以运行了?
首先你得明白浏览器是怎么运行代码的,其次你的打包工具会分析你代码中的依赖,把必要的东西提出来,还有,你安装的依赖中,有大部分是为你的打包系统工作的,而不是为你自己的代码的服务
所有的插件包可以分两类,一类开发时用,另一类是运行时用。
你在本地环境开发的时候要用到一个本地服务器的插件,它就是开发时用到的,因为生产环境有自己的服务器配置,是用不到它的,它的作用是模拟线上服务器提供一个发布路径,这样就能够把你的代码在浏览器呈现出来。那他最终呈现的是什么呢?
那就是构建工具比如gulp、webpack之类的把你的业务代码和插件都打包起来生成的临时html,css,js三种格式的文件,只有这些才是最终浏览器能够看懂的,也是最后要发到生产上去的,在本地也是同样只能接受这三种格式的文件。
在工具本地构建的时候,就已经把你在运行时要依赖的插件也一起打包进去你的js文件里了,等于把你之前安装的依赖中需要的部分都提取了出来,构建工具就是干这种事情的,所以用构建工具开发时就省去了手动添加script引用各种插件这种苦活,但它是可以用这种方式替换的。
线上的服务器跟你本地的一样,就等着你把打包好的文件传上,呈现给浏览器。