cnpm install --save-dev @babel/core @babel/cli @babel/preset-env @babel/node
cnpm install --save @babel/polyfill
const presets = [
["@babel/env",{
targets:{
edge:"17",
firefox:"60",
chrome:"67",
safari:"11.1"
}
}]
];
module.exports = {
presets};
console.log("ok")
npx babel-node index.js
//默认导出语法只能使用唯一的一次
export default{
}
let a = 10
let c = 20
let d = 30
function show() {
}
export default {
a,c,show
}
import 接收名称 from '模块标识符'
import m2 from './m2.js'
console.log(m2)
export let s1 = 10
export let s1 = 10
export let s2 = 'ccc'
export function say() {
}
import {
s1} from '模块标识符'
import {
s1,s2 as ss2,say} from "./m3";
console.log(s1)
console.log(ss2)
console.log(say)
//m4.js
for (let i = 0;i<10;i++){
console.log(i)
}
//index04.js
import "./m4";
npm init -y
命令,初始化报管理配置文件package.jsonsrc->index.html
首页npm install jquery -s
命令,安装jQuerynpm install webpack webpack-cli -D
命令,安装webpack相关的包module.exports={
//mode指定构建模式 production development
mode:'development'
}
"script":{
//script节点下的脚本,可以通过npm run执行
"dev":"webpack"
}
npm run dev
命令,启动webpack进行项目打包src->index.js
dist->main.js
//在webpack.config.js中新增配置信息
//导入操作路径的模块
const path = require('path')
module.exports={
//mode指定构建模式
// mode:'development'
mode:'production',
//打包入口文件的路径
entry:path.join(__dirname,'./src/index.js'),
output:{
//输出文件的存放路径
path:path.join(__dirname,'./dist'),
//输出文件名称
filename:'bundle.js'
}
}
解决的问题
npm run dev
重新生成转换后的js步骤
npm install webpack-dev-server -D
命令,安装支持项目自动打包的工具package.json->scripts
中的dev命令"scripts":{
//script节点下的脚本,可以通过npm run执行
"dev":"webpack-dev-server"
}
src->index.html
中,script脚本引用路径修改为/bundle.js
npm run dev
命令,重新打包注意
webpack-dev-server
会启动一个实时打包的http服务器webpack-dev-server
打包生成的输出文件,默认放到了项目根目录中,而且是虚拟的、看不见的html-webpack-plugin
生成预览页面运行npm install html-webpack-plugin -D
命令,安装生成预览页面的插件
修改webpack.config.js文件的头部区域,添加如下配置信息:
//导入生成预览页面的插件,得到一个构造函数
const HtmlWebpackPlugin = require('html-webpack-plugin')
const htmlPlugin = new HtmlWebpackPlugin({
//源文件
template:'./src/index.html',
//生成文件(存在内存中,目录中不显示)
filename:'index.html'
})
修改webpack.config.js文件中向外暴露的配置对象,新增如下配置节点:
module.exports={
//插件列表
plugins:[htmlPlugin]
}
解决的问题
修改package.json的配置
//package.json中的配置
//--open 打包完成后自动打开浏览器页面
//--host 配置IP地址
//--port 配置端口
"script":{
"dev":"webpack-dev-server --open --host 127.0.0.1 --port 8888"
}
打包css文件
npm i style-loader css-loader -D
命令,安装处理css文件的loadermodule->rules
数组中,添加loader规则如下://所有第三方文件模块的匹配规则
module:{
rules:[
//test表示匹配的文件类型 use表示对应要调用的loader
{
test:/\.css$/,use:['style-loader','css-loader']}
]
}
打包less文件
npm i less-loader less -D
命令,安装处理less文件的loadermodule->rules
数组中,添加loader规则如下://所有第三方文件模块的匹配规则
module:{
rules:[
//test表示匹配的文件类型 use表示对应要调用的loader
{
test:/\.less$/,use:['style-loader','css-loader','less-loader']}
]
}
打包scss文件
npm i sass-loader node-sass -D
命令,安装处理scss文件的loader(中文路径会安装失败)module->rules
数组中,添加loader规则如下://所有第三方文件模块的匹配规则
module:{
rules:[
//test表示匹配的文件类型 use表示对应要调用的loader
{
test:/\.scss$/,use:['style-loader','css-loader','sass-loader']}
]
}
解决的问题
浏览器前缀自动添加
步骤
npm i postcss-loader autoprefixer -D
命令//导入自动添加前缀的插件
const autoprefixer = require('autoprefixer')
module.exports={
//挂载插件
plugins:[autoprefixer]
}
module->rules
数组中,添加loader规则如下://所有第三方文件模块的匹配规则
module:{
rules:[
//test表示匹配的文件类型 use表示对应要调用的loader
{
test:/\.css$/,use:['style-loader','css-loader','postcss-loader']}
]
}
运行npm i url-loader file-loader -D
命令
在webpack.config.js的module->rules
数组中,添加loader规则如下:
//所有第三方文件模块的匹配规则
module:{
rules:[
//test表示匹配的文件类型 use表示对应要调用的loader
{
test:/\.jpg|png|gif|bmp|ttf|eot|svg|woff|woff2$/,
use:'url-loader?limit=10284988'
}
]
}
图片大小小于limit会被转化为base64,大于或等于不会转换为base64
安装babel转换器相关的包:npm i babel-loader @babel/core @babel/runtime -D
安装babel语法插件相关的包:npm i @babel/preset-env @babel/plugin-transform-runtime @babel/plugin-proposal-class-properties -D
在项目根目录中,创建babel配置文件babel.config.js并初始化基本配置如下:
module.exports = {
presets:['@babel/preset-env'],
plugins:['@babel/plugin-transform-runtime','@babel/plugin-proposal-class-properties']
}
在webpack.config.js的modules->rules
数组中,添加loader规则如下:
//exclude为排除项,表示babel-loader不需要处理node_modules中的js文件
{
test:/\.js$/,use:'babel-loader',exclude:/node_modules/}
运行npm i vue-loader vue-template-compiler -D
命令
在webpack.config.js配置文件中,添加vue-loader的配置项如下:
const VueLoaderPlugin = require('vue-loader/lib/plugin')
module.exports = {
module:{
rules:[
{
test:/\.vue$/,loader:'vue-loader'}
]
},
plugins:[
new VueLoaderPlugin()
]
}
运行npm i vue -S
安装vue
在src->index.js
入口文件中,通过import Vue from 'vue'
来导入vue构造函数
创建vue的实例对象,并指定要控制的el区域
通过render函数渲染App根组件
//导入Vue构造函数
import Vue from 'vue'
//导入App根组件
import App from './components/App.vue'
const vm = new Vue({
//指定要控制的el区域
el:"#app",
//通过render函数渲染App根组件
render:h=>h(App)
})
修改package.json文件配置打包命令
//在package.json文件中配置webpack打包命令
"scripts":{
"build":"webpack -p"
}
npm install -g @vue/cli
vue -V
//1. 基于交互式命令行的方式,创建新版vue项目
vue create my-project
//2. 基于图形化界面的方式,创建新版vue项目
vue ui
//3. 基于2.x旧模板,创建旧版vue项目
npm install -g @vue/cli-init
vue init webpack my-project
Vue CLI v4.2.2
? Please pick a preset: Manually select features
? Check the features needed for your project: Babel, Router, Linter
? Use history mode for router? (Requires proper server setup for index fallback in
production) No
? Pick a linter / formatter config: Standard
? Pick additional lint features: (Press <space> to select, <a> to toggle all, <i> t
o invert selection)Lint on save
? Where do you prefer placing config for Babel, ESLint, etc.? In dedicated config f
iles
? Save this as a preset for future projects? Yes
? Save preset as: vueSetting
cd my-project
npm run serve
"vue": {
"devServer": {
"port": 8888,
"open": true
}
}
module.exports = {
"devServer": {
"port": 8888,
"open": true
}
}
npm i element-ui -S
//导入组件库
import ElementUI from 'element-ui'
//导入样式
import 'element-ui/lib/theme-chalk/index.css'
//配置Vue插件
Vue.use(ElementUI)
<el-row>
<el-button>默认按钮el-button>
<el-button type="primary">主要按钮el-button>
<el-button type="success">成功按钮el-button>
<el-button type="info">信息按钮el-button>
<el-button type="warning">警告按钮el-button>
<el-button type="danger">危险按钮el-button>
el-row>