用网站的源代码怎么做网站站长统计app软件下载

张小明 2025/12/28 16:21:23
用网站的源代码怎么做网站,站长统计app软件下载,模板企业快速建站,wap网站设计方案项目模板 模板地址 如果急用#xff0c;直接使用当前模板即可。点击右上角Use This Template即可创建一个新的项目。 背景 当我每每创建一个新的webpack项目时#xff0c;总是需要经过繁琐的webpack配置来完成项目的init。如果从网络上搜寻快速的setup总会遇到各种各样的问…项目模板模板地址如果急用直接使用当前模板即可。点击右上角Use This Template即可创建一个新的项目。背景当我每每创建一个新的webpack项目时总是需要经过繁琐的webpack配置来完成项目的init。如果从网络上搜寻快速的setup总会遇到各种各样的问题由于包的版本有更新有些配置已经废弃掉了所有我决定搭建自己的webpack配置模板。搭建步骤1. pnpm 开启webpack项目1.1 生成package.jsonpnpminit1.2 引入webpackpnpmadd-D webpack webpack-cli webpack-dev-server1.3 引入typescriptpnpmadd-D typescript ts-node types/node1.4 引入reactpnpmaddreact react-dompnpmadd-D types/react types/react-dom2. 初始化react代码2.1 创建src/app.tsxconstApp(){returndivHello World/div}exportdefaultApp2.2 创建src/index.tsximport{createRoot}fromreact-dom/clientimportAppfrom./appcreateRoot(document.getElementById(root)!).render(App/)3. webpack配置3.1 创建webpack.config.tsimportpathfrompathimport{fileURLToPath}fromurlimporttype{Configuration}fromwebpackconstrootDirpath.dirname(fileURLToPath(import.meta.url))constconfig:Configuration{entry:./src/index.tsx,output:{path:path.resolve(rootDir,dist),filename:[name].[contenthash].js},resolve:{extensions:[.ts,.tsx,.js,.jsx]},devtool:source-map,module:{},mode:development}exportdefaultconfig3.2 设置webpack插件pnpmadd-D html-webpack-plugin clean-webpack-plugin在public下创建index.html!doctypehtmlhtmllangenheadmetacharsetUTF-8/metanameviewportcontentwidthdevice-width, initial-scale1.0/titleWebpack React Template/title/headbodydividroot/div/body/htmlwebpack 补充插件配置以及devServer配置importpathfrompathimport{fileURLToPath}fromurlimportHtmlWebpackPluginfromhtml-webpack-pluginimport{CleanWebpackPlugin}fromclean-webpack-pluginimporttype{Configuration}fromwebpackimportwebpack-dev-serverconstrootDirpath.dirname(fileURLToPath(import.meta.url))constconfig:Configuration{entry:./src/index.tsx,output:{path:path.resolve(rootDir,dist),filename:[name].[contenthash].js},resolve:{extensions:[.ts,.tsx,.js,.jsx]},plugins:[newHtmlWebpackPlugin({template:./public/index.html}),newCleanWebpackPlugin()],devtool:source-map,devServer:{static:{directory:path.join(rootDir,public)},compress:true,historyApiFallback:true},mode:development}exportdefaultconfig3.3 设置webpack loader(style)pnpmadd-D style-loader css-loader sass sass-loader引入到webpack config的rules中constconfig:Configuration{entry:./src/index.tsx,output:{path:path.resolve(rootDir,dist),filename:[name].[contenthash].js},resolve:{extensions:[.ts,.tsx,.js,.jsx]},plugins:[newHtmlWebpackPlugin({template:./public/index.html}),newCleanWebpackPlugin()],devtool:source-map,module:{rules:[{test:/\.css$/i,use:[style-loader,css-loader]},{test:/\.scss$/i,use:[style-loader,css-loader,sass-loader]},{test:/\.(png|jpg|jpeg|gif|svg)$/i,type:asset/resource}]},devServer:{static:{directory:path.join(rootDir,public)},compress:true,historyApiFallback:true},mode:development}exportdefaultconfig这里还引入静态资源的rules直接从asset/resource中获取。因为我们引入了sass这里我们还需要定义sass文件.sass,.scss)的模块类型,在src/types里创建index.d.ts:declaremodule*.scss{constcontent:{[className:string]:string}exportdefaultcontent}3.4 设置webpack babelpnpmadd-D babel/core babel/preset-env babel/preset-react babel/preset-typescript babel-loader在config进行如下配置importpathfrompathimport{fileURLToPath}fromurlimportHtmlWebpackPluginfromhtml-webpack-pluginimport{CleanWebpackPlugin}fromclean-webpack-pluginimporttype{Configuration}fromwebpackimportwebpack-dev-serverconstrootDirpath.dirname(fileURLToPath(import.meta.url))constconfig:Configuration{entry:./src/index.tsx,output:{path:path.resolve(rootDir,dist),filename:[name].[contenthash].js},resolve:{extensions:[.ts,.tsx,.js,.jsx]},plugins:[newHtmlWebpackPlugin({template:./public/index.html}),newCleanWebpackPlugin()],devtool:source-map,module:{rules:[{test:/\.(ts|js)x?$/,exclude:/node_modules/,use:[{loader:babel-loader,options:{presets:[babel/preset-env,[babel/preset-react,{runtime:automatic}],babel/preset-typescript]}}]},{test:/\.css$/i,use:[style-loader,css-loader]},{test:/\.scss$/i,use:[style-loader,css-loader,sass-loader]},{test:/\.(png|jpg|jpeg|gif|svg)$/i,type:asset/resource}]},devServer:{static:{directory:path.join(rootDir,public)},compress:true,historyApiFallback:true},mode:development}exportdefaultconfig4. typescript配置根目录上创建tsconfg.json{compilerOptions:{module:esnext,target:esnext,moduleResolution:bundler,lib:[dom,dom.iterable,esnext],sourceMap:true,declaration:true,declarationMap:true,noUncheckedIndexedAccess:true,exactOptionalPropertyTypes:true,strict:true,jsx:react-jsx,jsxImportSource:react,verbatimModuleSyntax:true,isolatedModules:true,noUncheckedSideEffectImports:true,moduleDetection:force,skipLibCheck:true}}通过上述配置我们修改package.json的scriptsscripts:{start:webpack serve --open --port 3210,build:webpack}此时运行pnpm run start即可在3210端口访问项目。接下来的内容是锦上添花优化工程即代码风格格式化typescript eslint规则校验使用git hooks触发生命周期钩子5. 使用prettier格式化代码pnpmadd-D prettier在根目录创建.prettierrc{semi:false,singleQuote:true,trailingComma:none,tabWidth:4,useTabs:false,printWidth:120,bracketSpacing:true,arrowParens:avoid,endOfLine:auto}在package.json配置格式化脚本scripts:{start:webpack serve --open --port 3210,build:webpack,format:prettier --write \src/**/*.{js,jsx,ts,tsx,json,css,md}\},执行即可把src中所有代码文件格式化6. 配置eslintpnpmadd-D eslint typescript-eslint eslint-plugin-react eslint-plugin-react-hooks eslint-webpack-plugin根目录创建eslint.config.jsimporttseslintfromtypescript-eslintimportreactPluginfromeslint-plugin-reactimportreactHooksfromeslint-plugin-react-hooksexportdefault[...tseslint.configs.recommended,{files:[**/*.{ts,tsx}],plugins:{react:reactPlugin,react-hooks:reactHooks},rules:{...reactPlugin.configs.recommended.rules,...reactHooks.configs.recommended.rules},settings:{react:{version:detect}}}]在packages的scripts脚本中写入scripts:{start:webpack serve --open --port 3210,build:webpack,format:prettier --write \src/**/*.{js,jsx,ts,tsx,json,css,md}\,lint:eslint --ext .ts,.tsx,lint:fix:eslint --ext .ts,.tsx --fix},7. husky 设置lint-stagedpnpmadd-D husky lint-staged7.1 初始化git仓库gitinit7.2 初始化huskynpx方式npx husky initpnpm方式pnpmexechusky init7.3 配置husky的pre-commit钩子在.husky中创建pre-commit无后缀文件写入npx lint-staged并在package.json中的根object里写入lint-staged配置lint-staged:{src/**/*.{ts,tsx}:[eslint --fix]}此时每当你git commit的时候它都会先执行eslint8. husky设置commit message为了规范每次提交记录的message我们使用commitlint规范feat: add new feature fix: bug fix docs: documentation changes style: formatting changes refactor: code refactoring test: adding tests chore: maintenance tasks引入commit-lintpnpmadd-D commitlint/cli commitlint/config-conventional创建commitlint.config.jsexportdefault{extends:[commitlint/config-conventional]}在.husky目录中创建commit-msg无后缀文件并写入pnpmexeccommitlint --edit$1此后后续的commit提交的message都会匹配是否以上述规范中的lint的title相匹配比如我提交一个需求必须以feat:开头9. 创建.gitignore屏蔽掉常见的本地配置/依赖项# Dependencies node_modules .pnpm-store # Build output dist # IDE .idea .vscode *.swp *.swo # OS .DS_Store Thumbs.db # Logs *.log npm-debug.log* # Environment .env .env.local .env.*.local
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

做关键词排名卖网站单片机开发工程师

第一章:Open-AutoGLM安装成功率提升的核心挑战在部署 Open-AutoGLM 这类基于自研大语言模型框架的开源项目时,开发者常面临安装成功率低的问题。其根源不仅在于依赖复杂,更涉及环境适配、权限控制与网络策略等多维度因素。依赖版本冲突 Open-…

张小明 2025/12/28 16:20:52 网站建设

六安建设网站西安网络推广优化培训

RecyclerView性能优化:彻底解决图片加载闪烁的深度剖析与实战方案 【免费下载链接】glide An image loading and caching library for Android focused on smooth scrolling 项目地址: https://gitcode.com/gh_mirrors/gl/glide 在Android应用开发中&#xf…

张小明 2025/12/28 16:20:19 网站建设

自建站有哪些深圳网站美化

为什么说Kitty是Windows终端的最佳选择? 【免费下载链接】kitty Cross-platform, fast, feature-rich, GPU based terminal 项目地址: https://gitcode.com/GitHub_Trending/ki/kitty 在Windows系统上寻找理想的终端工具往往令人困扰。传统命令行界面启动缓慢…

张小明 2025/12/28 16:19:44 网站建设

网站被镜像怎么做vultr安装wordpress

当大多数AI工具还在比拼“能生成多少字”时,我们思考得更深一步:如何让生成的内容经得起推敲?好写作AI的核心突破,在于超越简单的文本生成,内嵌强大的 “批判性思维引擎” 与 “逻辑漏洞扫描” 功能。它不仅是你的写作…

张小明 2025/12/28 16:19:08 网站建设

网站开发游戏工作流程管理系统说明书

阅读提示 博主是一位拥有多年毕设经验的技术人员,如果本选题不适用于您的专业或者已选题目,我们同样支持按需求定做项目,论文全套!!! 博主介绍 CSDN毕设辅导第一人、靠谱第一人、全网粉丝50W,csdn特邀作者…

张小明 2025/12/28 16:18:34 网站建设

电商网站建设的重要性中山网页设计培训

Windows Vista 使用指南:用户管理、共享设置与笔记本功能 1. 用户账户管理 更改用户名 显示“管理账户”窗口。 点击要操作的用户账户。 在出现的“更改账户”窗口中,点击“更改名称”。 输入新名称,然后点击“更改名称”。 点击“管理账户”返回“管理账户”窗口。 …

张小明 2025/12/28 16:17:26 网站建设