网站浏览器图标怎么做中国十大设计名校

张小明 2025/12/31 9:58:42
网站浏览器图标怎么做,中国十大设计名校,营销网站的关键字,眼科医院网站开发项目模板 模板地址 如果急用#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进行投诉反馈,一经查实,立即删除!

临沂做进销存网站连江可门港建设发展有限公司网站

Wan2.2-T2V-A14B在社交媒体爆款视频生成中的实战效果 你有没有刷到过那种“一秒入梦”的短视频?——樱花纷飞中旋转起舞的女孩,清晨阳光下缓缓旋出的口红,或是极光下奔跑的雪橇犬……画面精致得不像AI,动作流畅得仿佛真人拍摄。 …

张小明 2025/12/31 9:58:41 网站建设

vs网站怎么做设计制作个人网站

消费品行业包括消费者在商城购买的所有产品,在上架之前,他们必须要通过对产品及其包装施加压力的分销渠道。在某些情况下,这些应力会对包装或产品造成损害,使其不适合消费者使用,这些类型的损害是昂贵的但可以避免。封…

张小明 2025/12/31 9:57:39 网站建设

怎么用idea做响应式网站桥梁建设设计网站

配送员-手机登记 配送员用手机就能录入食材名称、数量、验收状态,数据实时同步至台账,省去手写和二次录入的麻烦,大幅降低出错率,这便是高效实操的底层逻辑。而每一次登记都是存在的具象化,流动的数据不是冰冷符号&…

张小明 2025/12/31 9:56:39 网站建设

自己做网站的过程广州越秀区重点场所

还在为追番体验不够流畅而烦恼吗?Animeko作为一款基于Kotlin Multiplatform技术构建的跨平台动漫应用,重新定义了现代追番方式。这款工具集番剧发现、智能播放、弹幕互动于一体,为动漫爱好者提供真正的一站式解决方案。 【免费下载链接】anim…

张小明 2025/12/31 9:55:46 网站建设

外贸网站建设 全球搜域名注册解析管理网站

ExifToolGui完全指南:从新手到专家的图像元数据管理 【免费下载链接】ExifToolGui A GUI for ExifTool 项目地址: https://gitcode.com/gh_mirrors/ex/ExifToolGui 在数字摄影和图像处理领域,图像元数据管理是专业工作流程中不可或缺的一环。Exif…

张小明 2025/12/31 9:55:11 网站建设

商城网站平台怎么做管理咨询公司技术服务

想要免费体验RouterOS的全部企业级功能吗?MikroTikPatch项目正是您需要的解决方案。这个强大的工具能够将RouterOS的功能级别提升至最高等级6,让您完整使用所有高级特性。本教程将为您提供从下载到配置的完整指导。 【免费下载链接】MikroTikPatch 项…

张小明 2025/12/31 9:54:38 网站建设