商标设计logo免费生成器网站免费 片

张小明 2026/1/11 7:06:36
商标设计logo免费生成器网站,免费 片,有没有专做于投融资的网站,网站开发技术方案与实施项目模板 模板地址 如果急用#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进行投诉反馈,一经查实,立即删除!

什么行业 网站便捷网站建设公司

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个UI流程图快速原型工具,功能包括:1. 拖拽预制组件(按钮、表单等)创建页面流;2. 自动生成页面跳转连线&#xff1b…

张小明 2026/1/10 6:57:18 网站建设

汕头网站建设推荐彩票网站建设柏

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 生成一个微服务原型的Spring IOC实现,包含:1. 用户服务;2. 订单服务;3. 商品服务。要求:1. 服务间通过FeignClient通信&a…

张小明 2026/1/10 7:24:54 网站建设

网站开发python好还是PHP好织梦网站手机页怎么做

sumlink储能辅助火电机组二次调频控制策略及容量优化配置 仿真文件含储能sumlink仿真火电哥们调频有多难?机组响应慢得跟老牛拉破车似的,电网频率波动起来真要命。这时候储能系统就是个救场王,响应速度按毫秒算,跟火电机组组个CP简…

张小明 2026/1/10 6:57:20 网站建设

下载了网站建设asp衡水哪儿专业做网站

Mailslot编程:原理、实现与优化 1. Mailslot简介 Mailslot是一种在Windows系统中用于进程间通信(IPC)的机制,它可以用于设计客户端/服务器应用程序以及需要对等通信的应用程序。Mailslot允许基于数据报的非保证通信,数据报可以定向到特定进程或域中运行的一组进程。 1.…

张小明 2026/1/10 7:16:11 网站建设

网站网页建设实训心得体会网站建设定制开发价格

GPT-SoVITS模型检查点管理:从入门到精通的完整指南 【免费下载链接】GPT-SoVITS 项目地址: https://gitcode.com/GitHub_Trending/gp/GPT-SoVITS 在AI语音合成项目开发中,模型检查点(Checkpoint)管理是确保训练过程稳定性…

张小明 2026/1/10 6:57:23 网站建设

高端网站开发的公司网站开发中网页之间的连接形式有

从轮询到DMA:让串口通信真正“解放”CPU你有没有遇到过这种情况?系统里接了个GPS模块,波特率115200,数据源源不断地来。你用中断方式接收,每来一个字节就进一次中断——结果CPU几乎一半时间都花在进/出中断上了&#x…

张小明 2026/1/10 6:57:23 网站建设