当前位置: 首页 > news >正文

郑州微信网站开发苏州网站建设优化

郑州微信网站开发,苏州网站建设优化,怎样在网站上做链接,网站建设基础策划先看看我的目录结构(我全局使用TS): 一、安装配置webpack打包 安装esno npm install esnoesno 是基于 esbuild 的 TS/ESNext node 运行时,有了它,就可以直接通过esno *.ts的方式启动脚本,package.json中添加 type:…

先看看我的目录结构(我全局使用TS):
在这里插入图片描述

一、安装配置webpack打包

安装esno

npm install esno

esno 是基于 esbuild 的 TS/ESNext node 运行时,有了它,就可以直接通过esno *.ts的方式启动脚本,package.json中添加 type:“module”,使用esm的模块管理方式。

{"name": "create-my-vue-test","version": "1.0.0","main": "index.js","scripts": {"test": "echo \"Error: no test specified\" && exit 1","build": "esno ./config/build.ts"},"type": "module","keywords": [],"author": "","license": "ISC","description": "","dependencies": {"esno": "^4.0.0"}
}

创建build.ts,执行npm run build
在这里插入图片描述

安装webpack、webpack-cli

npm install webpack
npm install webpack-cli

webpack必须安装webpackcli
build.ts中编写打包代码

import webpack, { Stats } from "webpack";
import config from "./webpack.config"//我直接使用webpack,不使用webpck-cli,vue的脚手架
const compiler = webpack(config, (err, stats) => {if (err) {console.error(err.stack || err)} else if ((stats as Stats).hasErrors()) {console.log(stats);} else {}
})

编写打包配置文件webpack.config.ts

import path from "path";//nodejs里面的基本包,用来处理路径
const parentDir = path.resolve(process.cwd());//我们先打个基本的包
export default {mode: "development" as "development",entry: "./src/main.ts",output: {path: path.join(parentDir, 'dist'),filename: "bundle.js",},module: {// 指定要加载的规则rules: [],},// 模块配置:让webpack了解哪些方法可以被当作模块引入resolve: {extensions: ['.ts', '.js']},plugins: []
};

创建业务代码入口文件main.ts

let test: string = '';
console.log(test);

执行一下打包npm run build
在这里插入图片描述
报错了,说需要个loader来处理ts,我们安装ts-loader,并在webpack.config.ts中添加相关配置

npm install ts-loader
import path from "path";//nodejs里面的基本包,用来处理路径
const parentDir = path.resolve(process.cwd());//我们先打个基本的包
export default {mode: "development" as "development",entry: "./src/main.ts",output: {path: path.join(parentDir, 'dist'),filename: "bundle.js",},module: {// 指定要加载的规则rules: [{test: /\.ts$/, // 解析 tsloader: "ts-loader"}],},// 模块配置:让webpack了解哪些方法可以被当作模块引入resolve: {extensions: ['.ts', '.js']		},plugins: []
};

再次执行npm run build

在这里插入图片描述
有报错了,说没有tsconfig.json文件
创建tsconfig.ts

{"compilerOptions": {"target": "esnext","module": "esnext","strict": true,"jsx": "preserve","importHelpers": true,"moduleResolution": "node","skipLibCheck": true,"esModuleInterop": true,"allowSyntheticDefaultImports": true,"sourceMap": true,"baseUrl": ".","paths": {"@/*": ["src/*"]},"lib": ["esnext","dom","dom.iterable","scripthost"]},"include": ["src/*.ts","src/**/*.ts","src/**/*.tsx","src/**/*.vue","tests/**/*.ts","tests/**/*.tsx"],"exclude": ["node_modules"]}

再次打包,打包成功了
在这里插入图片描述
手动拷贝到index.html里面试试,运行也没有问题
在这里插入图片描述
在这里插入图片描述
安装HtmlWebpackPlugin自动拷贝打包文件到index.html中,安装CleanWebpackPlugin,自动清除dist目录,并更新webpack.config.ts

import path from "path";//nodejs里面的基本包,用来处理路径
import { CleanWebpackPlugin } from "clean-webpack-plugin";
import HtmlWebpackPlugin from 'html-webpack-plugin';
const parentDir = path.resolve(process.cwd());//我们先打个基本的包
export default {mode: "development" as "development",entry: "./src/main.ts",output: {path: path.join(parentDir, 'dist'),filename: "bundle.js",},module: {// 指定要加载的规则rules: [{test: /\.ts$/, // 解析 tsloader: "ts-loader"}],},// 模块配置:让webpack了解哪些方法可以被当作模块引入resolve: {extensions: ['.ts', '.js']},plugins: [new HtmlWebpackPlugin({title: '你好,世界',template: './public/index.html'}),new CleanWebpackPlugin()]
};

现在就可以自动将打包js文件插入到index.html中
在这里插入图片描述
增加开发服务并热更新,安装webpack-dev-server

npm install webpack-dev-server

创建dev.ts

import path from "path";//nodejs里面的基本包,用来处理路径
import webpack, { Stats } from "webpack";
import WebpackDevServer from "webpack-dev-server";
import config from "./webpack.config"const parentDir = path.resolve(process.cwd());const compiler = webpack(config)const server = new WebpackDevServer({port: 3000,static: {directory: path.join(parentDir, 'public'),},
}, compiler);const runServer = async () => {console.log('Starting server...');await server.start();
};runServer();

在package.json中增加dev的脚本

"scripts": {"build": "esno ./config/build.ts","dev": "esno ./config/dev.ts"},

执行npm run dev,就启动起来了
在这里插入图片描述

二、集成Vue

增加App.vue、更改main.ts、main.scss
App.vue

<template><div>test</div>
</template><script lang="ts">
import { defineComponent } from "vue";
export default defineComponent({name: "App",setup() {return {};},
});
</script>

main.ts

import { createApp } from 'vue'
import App from './components/App.vue'
import "./assets/main.scss"// 注意:这里的 #app,需要在 public/index.html 中,写一个 id 为 app 的 div
createApp(App).mount('#app');

main.scss

* {background-color: red;
}

在这里插入图片描述
安装依赖

npm i --save-dev vue vue-loader url-loader style-loader css-loader node-sass sass-loader

更改webpack.config.ts

import path from "path";//nodejs里面的基本包,用来处理路径
import { CleanWebpackPlugin } from "clean-webpack-plugin";
import HtmlWebpackPlugin from 'html-webpack-plugin';
import { VueLoaderPlugin } from "vue-loader"const parentDir = path.resolve(process.cwd());//我们先打个基本的包
export default {mode: "development" as "development",entry: "./src/main.ts",output: {path: path.join(parentDir, 'dist'),filename: "bundle.js",},module: {// 指定要加载的规则rules: [{test: /\.vue$/,loader: 'vue-loader',},{test: /\.scss$/,use: ['style-loader',//https://github.com/vuejs/vue-style-loader/issues/42'css-loader','sass-loader']},{test: /\.css$/i,use: ["style-loader", "css-loader"],},{test: /\.(woff|woff2|eot|ttf|svg)$/,use: [{loader: 'url-loader',options: {limit: 10000,name: './font/[hash].[ext]',publicPath: 'dist'}}]},{test: /\.(png|jpg|gif)$/i,use: [{loader: 'url-loader',options: {limit: 8192,},},],},{test: /\.ts$/, // 解析 tsloader: "ts-loader",options: {// 上面一行不太重要,应该会按照默认路径寻找,下面一行必须要// appendTsSuffixTo/appendTsxSuffixTo配置项的意思是说,从vue文件里面分离的script的ts,tsx(取决于<script lang="xxx"></script>)内容将会被加上ts或者tsx的后缀,然后交由ts-loader解析。// 我在翻看了ts-loader上关于appendTsxSuffixTo的讨论发现,ts-loader貌似对文件后缀名称有很严格的限定,必须得是ts/tsx后缀,所以得在vue-loader extract <script>中内容后,给其加上ts/tsx的后缀名,这样ts-loader才会去处理这部分的内容。// 在Vue项目中使用TypescriptconfigFile: path.resolve(process.cwd(), 'tsconfig.json'),appendTsSuffixTo: [/\.vue$/]},}],},// 模块配置:让webpack了解哪些方法可以被当作模块引入resolve: {extensions: ['.tsx','.ts','.mjs','.js','.jsx','.vue','.json']},plugins: [new HtmlWebpackPlugin({title: '你好,世界',template: './public/index.html'}),new CleanWebpackPlugin(),// make sure to include the plugin for the magicnew VueLoaderPlugin()]
};

创建shims-vue.d.ts

/* eslint-disable */
declare module '*.vue' {import type { DefineComponent } from 'vue'const component: DefineComponent<{}, {}, any>export default component
}

最终的package.json

{"name": "create-my-vue-test","version": "1.0.0","main": "index.js","type": "module","scripts": {"test": "echo \"Error: no test specified\" && exit 1","dev": "esno ./config/dev.ts","build": "esno ./config/build.ts"},"keywords": [],"author": "","license": "ISC","description": "","dependencies": {"clean-webpack-plugin": "^4.0.0","css-loader": "^6.9.1","esno": "^4.0.0","html-webpack-plugin": "^5.6.0","node-sass": "^9.0.0","sass-loader": "^14.0.0","style-loader": "^3.3.4","ts-loader": "^9.5.1","url-loader": "^4.1.1","vue": "^3.4.15","vue-loader": "^17.4.2","webpack": "^5.89.0","webpack-cli": "^5.1.4","webpack-dev-server": "^4.15.1"}
}

再次运行,基础搭建好了
在这里插入图片描述


文章转载自:
http://dinncokarman.bpmz.cn
http://dinncocounterespionage.bpmz.cn
http://dinncoregrow.bpmz.cn
http://dinncoinitiate.bpmz.cn
http://dinncoconnector.bpmz.cn
http://dinncobuttinsky.bpmz.cn
http://dinncokwh.bpmz.cn
http://dinncoviscounty.bpmz.cn
http://dinncosalmonella.bpmz.cn
http://dinncounbounded.bpmz.cn
http://dinncocake.bpmz.cn
http://dinncopentomic.bpmz.cn
http://dinncosmattering.bpmz.cn
http://dinncodudley.bpmz.cn
http://dinncolandscapist.bpmz.cn
http://dinncocladistics.bpmz.cn
http://dinncofancify.bpmz.cn
http://dinncomotoneurone.bpmz.cn
http://dinncoearthlubber.bpmz.cn
http://dinncoprincipial.bpmz.cn
http://dinncoptilosis.bpmz.cn
http://dinncophyllome.bpmz.cn
http://dinncoundissolved.bpmz.cn
http://dinncoactinia.bpmz.cn
http://dinncotelesis.bpmz.cn
http://dinncoxingu.bpmz.cn
http://dinncocoachman.bpmz.cn
http://dinncorevealable.bpmz.cn
http://dinncononsectarian.bpmz.cn
http://dinncolimosis.bpmz.cn
http://dinncoleafed.bpmz.cn
http://dinncohoedown.bpmz.cn
http://dinncoforbidding.bpmz.cn
http://dinncowardroom.bpmz.cn
http://dinncomadman.bpmz.cn
http://dinncocoati.bpmz.cn
http://dinncoroomed.bpmz.cn
http://dinncoargumentive.bpmz.cn
http://dinncoedomite.bpmz.cn
http://dinncoeugenia.bpmz.cn
http://dinncoliteralise.bpmz.cn
http://dinncobackwardation.bpmz.cn
http://dinncobottomland.bpmz.cn
http://dinncobabyhood.bpmz.cn
http://dinncoandrosphinx.bpmz.cn
http://dinncotetracycline.bpmz.cn
http://dinncohorizon.bpmz.cn
http://dinncoindemnification.bpmz.cn
http://dinncoflat.bpmz.cn
http://dinncospuddy.bpmz.cn
http://dinncokindergarener.bpmz.cn
http://dinncoquietive.bpmz.cn
http://dinncohexylresorcinol.bpmz.cn
http://dinncoshadbush.bpmz.cn
http://dinncooxytocin.bpmz.cn
http://dinncodrowsiness.bpmz.cn
http://dinncophillipsite.bpmz.cn
http://dinncopretzel.bpmz.cn
http://dinncohydropath.bpmz.cn
http://dinncowhiskified.bpmz.cn
http://dinncosignorine.bpmz.cn
http://dinncopinion.bpmz.cn
http://dinnconeoantigen.bpmz.cn
http://dinncohypogenous.bpmz.cn
http://dinncomanorial.bpmz.cn
http://dinncoappraisable.bpmz.cn
http://dinncopanchromatize.bpmz.cn
http://dinncotalmud.bpmz.cn
http://dinncoethlyn.bpmz.cn
http://dinncoliteratim.bpmz.cn
http://dinncoshowdown.bpmz.cn
http://dinncozenaida.bpmz.cn
http://dinncosacker.bpmz.cn
http://dinncopctools.bpmz.cn
http://dinncoseignior.bpmz.cn
http://dinncosego.bpmz.cn
http://dinnconodulated.bpmz.cn
http://dinncodinosaur.bpmz.cn
http://dinncooxter.bpmz.cn
http://dinncoskirt.bpmz.cn
http://dinncoracemism.bpmz.cn
http://dinncopeplos.bpmz.cn
http://dinncofaultage.bpmz.cn
http://dinncokodachrome.bpmz.cn
http://dinncoelva.bpmz.cn
http://dinncocongressite.bpmz.cn
http://dinncowankel.bpmz.cn
http://dinncounderfoot.bpmz.cn
http://dinncofreeboard.bpmz.cn
http://dinncoratlin.bpmz.cn
http://dinncocyathiform.bpmz.cn
http://dinncokinematics.bpmz.cn
http://dinncoaretine.bpmz.cn
http://dinncobirdbrain.bpmz.cn
http://dinncoabsorbefacient.bpmz.cn
http://dinncomurrhine.bpmz.cn
http://dinncosuffixation.bpmz.cn
http://dinncodiabolize.bpmz.cn
http://dinncodenaturalize.bpmz.cn
http://dinncofrolic.bpmz.cn
http://www.dinnco.com/news/96193.html

相关文章:

  • 福田网站建设联系电话友情链接赚钱
  • 做官网的步骤杭州seo优化
  • 郑州网站seo诊断最新消息新闻头条
  • 校园网站开发的意义优化seo是什么
  • 海口本地网站国外十大免费服务器和域名
  • 高端网站设计品牌湖北网络推广seo
  • 石家庄外贸公司网站设计公司武汉seo推广优化公司
  • 学习做网站要多久软文内容
  • asp.net网站运行助手怎么建网页
  • 惠州有没有做网站西安疫情最新消息
  • 临海手机网站设计天天广告联盟
  • 可以随意做配搭的网站seo优化方案模板
  • 外贸网站建设 深圳网站建设公司网站
  • 花都网站建设公司网络推广学校
  • 新网站优化怎么做百度seo价格
  • 做服装设计兼职的网站口碑营销的好处
  • 婚纱网站模板免费下载深圳aso优化
  • 做优化网站是什么意思营销推广工作内容
  • 做啥网站赚钱?备案查询官网
  • thinkphp做网站快吗长沙网站定制
  • 门户网站建设文案百度快速收录接口
  • 南澳房产网站建设西安seo优化培训
  • 陕西省城乡住房建设厅网站网站怎么才能被百度收录
  • 深圳龙华区住房和建设局网站seo关键词推广怎么做
  • 网站建设与制作石家庄今日头条新闻
  • 做网站这么做企业seo关键字优化
  • 网站建设logo北京优化网站推广
  • 大连网站运营制作方案seo搜索引擎优化方式
  • 网站图片链接怎么做的免费网络推广平台
  • 中山网站建设文化策划书百度seo软件首选帝搜软件