首页 文章 精选 留言 我的

精选列表

搜索[开源周],共10011篇文章
优秀的个人博客,低调大师

一周精通Vue(三)webpack、代码抽离

webpack webcpak的核心有两个 一个是模块化 让我们可以进行模块化开发,并且会帮助我们处理模块之间的依赖关系 一个是打包 不仅仅是JavaScript文集 我们的css,图片,json文件等 在webpack中都可以被当做模块来使用 node -v 首先安装node 我这里安装的是10.15.3 # 全局安装webpack npm install webpack@3.6.0 -g # 安装项目依赖 npm install webpack@3.6.0 -save-dev webpack -version # 查看webpack版本 打包 在终端运行webpack命令时 都是使用全局的webpack 如果使用项目webpack 需要配置devDependencies # webpack 命令打包指定文件 如果有依赖则自动继承依赖打包 webpack ./src/main.js ./dist/bundle.js 配置 创建一个 webpack.config.js npm init # 初始化package.json配置文件 自动生成package.json文件 npm install # 安装package 自动生成 package-lock.json // file: webpack.config.js const path = require('path'); module.exports = { // 打包入口文件 entry: './src/main.js', // 出口文件 output: { // 出口文件绝对路径 path: path.resolve(__dirname, './dist'), // 打包后的文件名字 filename: 'bundle.js' } }; loader 官方链接:https://webpack.js.org/loaders css样式文件 # 1. 安装loader npm install --save-dev css-loader npm install --save-dev style-loader const path = require('path'); module.exports = { // 打包入口文件 entry: './src/main.js', // 出口文件 output: { // 出口文件绝对路径 path: path.resolve(__dirname, './dist'), // 打包后的文件名字 filename: 'bundle.js' }, module: { rules: [ { test: /\.css$/i, // css-loader 只负责将css文件加载 // style-loader 负责将样式添加到dom中 // 这里配置顺序需要注意 是从后向前加载的 use: ['style-loader', 'css-loader'], }, ], }, }; less 样式文件安装 less-loadernpm install --save-dev less-loader less img 图片文件安装 url-loadernpm install --save-dev url-loader安装 file-loadernpm install --save-dev file-loader ES6 -> ES5 语法处理安装babel-loadernpm install --save-dev babel-loader@7 babel-core babel-preset-es2015 配置Vue 安装vue 添加运行时依赖npm install vue --save new Vue // 使用vue进行开发 import Vue from 'vue' const vm = new Vue({ el: "#app", data: { msg: "Vue message!", }, methods: {} }); 修改HTML <div id="app"> {{msg}} </div> runtime-orly 没有template功能 代码中 不能包含任何的template内容 runtime-compiler 拥有template 代码中可使用 template代码内容 解决runtime-orly报错 指定runtime版本 配置webpack.config.js resolve: { alias: { // 指定 在其他地方导入vue的时候 vue来自哪里 // 在node_modules/vue/dist/ 中 默认是 vue.runtime.esm.js 修改为 vue.esm.js 'vue$': 'vue/dist/vue.esm.js' } } el 和template的区别 如果在Vue实例中写了 el 又写了template 那么 template会替换掉el挂载的元素 安装 vue-loader开发依赖npm install vue-loader vue-template-compiler --save-dev 代码抽离 src ├── css │ ├── narmal.css │ └── special.less ├── img │ ├── Ink\ Cloud.jpg │ └── timg.jpeg ├── js │ └── demo.js ├── main.js └── vue │ ├── App.vue │ └── Cpn.vue │ └── index.html │ └── package.json │ └── webpack.config.js │ └── dist │ └── node_modules // file:webpack.config.js // 配置 loader const path = require('path'); module.exports = { // 打包入口文件 entry: './src/main.js', // 出口文件 output: { // 出口文件绝对路径 path: path.resolve(__dirname, './dist'), // 打包后的文件名字 filename: 'bundle.js', // 打包时动态修改文件加载地址 publicPath: 'dist/' }, module: { rules: [ { test: /\.css$/i, // css-loader 只负责将css文件加载 // style-loader 负责将样式添加到dom中 // 这里配置顺序需要注意 是从后向前加载的 use: ['style-loader', 'css-loader'], }, { test: /\.less$/, use: [ { loader: "style-loader" // creates style nodes from JS strings }, { loader: "css-loader" // translates CSS into CommonJS }, { loader: "less-loader" // compiles Less to CSS } ] }, { test: /\.(png|jpg|gif|jpeg)$/, use: [ { loader: 'url-loader', options: { // 当加载图片时 文件大小 小于limit时 会将图片编译成base64字符串形式 // 当加载图片时 文件大小 大于limit时 需要使用file-loader模块进行加载 limit: 9999, // 打包后文件的命名规则 // [name] 文件打包前的名字 // [hash:8] 截取8位hash值 // [ext] 扩展名 name: 'img/[name].[hash:8].[ext]' }, } ] }, { test: /\.js$/, // exclude 转换的时候排除的内容 exclude: /(node_modules|bower_components)/, use: { loader: 'babel-loader', options: { presets: ['es2015'] } } }, { test: /\.vue$/, // vueloader use: ['vue-loader'] } ], }, resolve: { alias: { // 指定 在其他地方导入vue的时候 vue来自哪里 // 在node_modules/vue/dist/ 中 默认是 vue.runtime.esm.js 修改为 vue.esm.js 'vue$': 'vue/dist/vue.esm.js' } } }; file:main.js // 依赖js文件 import {name, age} from "./js/demo"; console.log(name); console.log(age); console.log('webpack package test!!!!!!!!1'); // 依赖css文件 require("./css/narmal.css"); // 依赖less文件 require("./css/special.less") document.write("<h1>前端谢广坤!</h1>") // 使用vue进行开发 // 导入vue import Vue from 'vue' // 依赖vue组件 .vue文件 import App from './vue/App.vue' const vm = new Vue({ el: "#app", template: "<App/>", components: { App }, methods: {} }); file: index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="app"> </div> <script src="./dist/bundle.js"></script> </body> </html> file: App.vue <template> <div> <h2>my name is cpn </h2> <button @click="butClick">按钮</button> <h2>{{name}}</h2> <Cpn></Cpn> </div> </template> <script> import Cpn from './Cpn.vue' export default { name: "App", components: { Cpn }, data() { return { message: 'Hello word!', name: 'coder why' } } } </script> <style scoped> </style> file:Cpn.vue <template> <h1>大写的Cpn</h1> </template> <script> export default { name: "Cpn" } </script> <style scoped> </style>

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册