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

手机网站赏析怎样制定网络推广方案

手机网站赏析,怎样制定网络推广方案,如何注册公司需要多少资金,济南百度公司目录 什么是npm npm核心功能 npm 常用指令及其作用 执行npm i 发生了什么? 1. 解析命令与参数 2. 检查依赖文件 3. 依赖版本解析与树构建 4. 缓存检查与包下载 5. 解压包到 node_modules 6. 更新 package-lock.json 7. 处理特殊依赖类型 8. 执行生命周期脚本 9. …目录 什么是npm npm核心功能 npm 常用指令及其作用 执行npm i 发生了什么? 1. 解析命令与参数 2. 检查依赖文件 3. 依赖版本解析与树构建 4. 缓存检查与包下载 5. 解压包到 node_modules 6. 更新 package-lock.json 7. 处理特殊依赖类型 8. 执行生命周期脚本 9. 生成 node_modules/.bin 目录 10.示例流程 执行npm start 发生了什么? 1. 解析命令与 package.json 查找 2. 执行生命周期钩子 3. 环境变量与路径设置 4. 执行用户定义的脚本 5. 依赖工具链的启动以 Create React App 为例 6. 进程管理与信号处理 7. 常见场景与问题 场景 1启动一个 Express 服务器 场景 2启动前端开发服务器如 Vue CLI 常见问题 8.总结 coress-env 为什么需要 cross-env coress-env核心功能 coress-env安装 coress-env基本用法 coress-env总结 npm、pnpm、yarm、bun、npx的差异 1. 核心定位与关联性 2. 核心差异对比 3. 命令对比 4. 使用场景示例 npm pnpm Yarn Bun npx 5.总结 常用命令行接口 1.基础操作 2.网络与端口 3.文件与目录 4.环境与模式 5.调试与日志 6.依赖管理 7.其他高频参数 8.总结 script文件解读 1. 基础开发命令 2. 测试与代码质量 3. 钩子脚本Hooks 4. 高级场景 5. 实用工具 6.完整的 package.json 示例 什么是npm npmNode Package Manager 是 JavaScript 的包管理工具也是 Node.js 的默认包管理器。它用于安装、共享和管理项目依赖拥有全球最大的开源库生态系统之一npm 官网 npm核心功能 依赖管理 通过 package.json 文件记录项目依赖的包及其版本。 自动处理依赖树解决版本冲突。 安装包 本地安装项目依赖 npm install package-name 本地安装项目依赖 npm install -g package-name 发布与共享 开发者可以发布自己的包到 npm 仓库供他人使用 scripts: {start: node app.js } npm 常用指令及其作用 指令作用示例npm init初始化项目生成 package.json 文件npm init -y快速生成跳过提问npm install 或 npm i安装 package.json 中所有依赖npm installnpm install package安装指定包默认添加到 dependenciesnpm install expressnpm install package --save-dev 或 npm i package -D安装包并添加到 devDependencies开发依赖npm install eslint --save-devnpm install -g package全局安装包通常用于命令行工具npm install -g nodemonnpm uninstall package卸载指定包npm uninstall lodashnpm update更新所有依赖到最新版本遵循 package.json 的版本规则npm updatenpm update package更新指定包npm update expressnpm outdated检查过时的依赖包npm outdatednpm list 或 npm ls列出已安装的依赖树npm list --depth0仅显示顶层依赖npm run script运行 package.json 中定义的脚本npm run startnpm start快捷命令等同于 npm run startnpm startnpm test快捷命令等同于 npm run testnpm testnpm publish发布包到 npm 仓库需登录npm publishnpm login登录 npm 账号npm loginnpm logout退出当前 npm 账号npm logoutnpm search keyword搜索 npm 仓库中的包npm search reactnpm view package查看包的详细信息版本、依赖等npm view lodashnpm audit检查依赖中的安全漏洞npm auditnpm audit fix自动修复可修复的安全漏洞npm audit fixnpm cache clean --force清空 npm 缓存解决安装问题npm cache clean --forcenpm config set key value修改 npm 配置如镜像源npm config set registry https://registry.npmmirror.comnpm config get key获取 npm 配置值npm config get registrynpm version semver更新项目版本号遵循语义化版本npm version patch更新补丁版本 关键说明 --save-dev vs 默认安装 开发工具如 webpack、eslint用 --save-dev生产代码依赖如 react直接安装。 全局安装 (-g) 适用于全局命令行工具如 create-react-app但需谨慎使用以避免权限问题。 版本管理 package-lock.json 会锁定依赖版本确保团队环境一致建议提交到版本控制。 执行npm i 发生了什么? 当运行 npm install或 npm i时整个过程可以分解为以下步骤涵盖依赖解析、缓存处理、文件操作及生命周期脚本执行 1. 解析命令与参数 命令类型根据参数判断是全局安装-g还是本地安装默认。本地安装会将依赖写入 package.json 的 dependencies 或 devDependencies。 目标包若指定了包名如 npm install lodashnpm 会明确安装该包否则安装 package.json 中声明的所有依赖。 2. 检查依赖文件 package.json读取项目根目录的 package.json获取 dependencies、devDependencies、peerDependencies 等信息。 package-lock.json 或 npm-shrinkwrap.json 若存在npm 会优先按 lock 文件中的精确版本安装确保依赖树一致。 若不存在npm 会根据 package.json 中的语义化版本如 ^1.0.0下载最新兼容版本并生成新的 package-lock.json。 3. 依赖版本解析与树构建 版本确定 有 lock 文件直接使用其中指定的版本。 无 lock 文件根据 package.json 的版本范围SemVer从 registry 获取最新满足条件的版本。 依赖树构建 npm 会递归分析每个包的依赖构建完整的依赖树。 扁平化处理Dedupenpm v3 采用扁平化结构hoisting将可共用的依赖提升到较高层级减少冗余。若同一包的不同版本无法提升会嵌套安装在具体包的 node_modules 下。 冲突处理当多个包依赖同一包的不同版本时npm 会尽量选择兼容版本若无法解决则各自安装所需版本。 4. 缓存检查与包下载 缓存目录npm 会检查本地缓存默认位于 ~/.npm通过 integrity 字段哈希值验证包完整性。 缓存命中直接使用缓存中的包文件无需下载。 缓存未命中从配置的 registry默认 https://registry.npmjs.org/下载压缩包.tgz。 网络请求 下载包元数据metadata和压缩包。 支持重试机制和离线模式--offline。 5. 解压包到 node_modules 文件解压将下载或缓存的包解压到项目 node_modules 目录。 扁平化结构主依赖放在顶层 node_modules子依赖尽可能提升以减少嵌套。 符号链接Symlink对全局安装的包或 npm link 创建的包生成符号链接。 6. 更新 package-lock.json 锁定依赖树写入所有依赖及其子依赖的精确版本、下载地址、哈希值确保后续安装的一致性。 格式同步若 package.json 变更如手动修改版本范围npm 会调整 package-lock.json 以保持兼容。 7. 处理特殊依赖类型 optionalDependencies可选依赖安装失败不会中断流程仅警告。 peerDependencies npm v7自动安装 peer 依赖若未显式声明可能引发警告。 旧版本仅检查是否存在需手动安装。 bundledDependencies直接包含本地文件不通过 registry 下载。 8. 执行生命周期脚本 按顺序执行包定义的生命周期钩子 preinstall安装前触发。 install包安装后运行。 postinstall通常用于编译原生模块如 node-gyp 构建。 其他钩子如 prepublish已弃用改用 prepare。 9. 生成 node_modules/.bin 目录 创建可执行文件的快捷方式使 CLI 工具如 webpack、eslint可直接通过 npx 或 npm scripts 调用。 10.示例流程 假设运行 npm install lodash 解析命令确认安装 lodash 到 dependencies。 检查 package-lock.json若无则向 registry 查询最新版本。 下载 lodash.tgz 并验证哈希。 解压到 node_modules/lodash。 更新 package.json 和 package-lock.json。 执行 lodash 的 postinstall 脚本如果有。 执行npm start 发生了什么? 当你在项目中执行 npm start 时背后发生了一系列复杂的流程。以下是详细的分解步骤 1. 解析命令与 package.json 查找 命令触发输入 npm start 后npm CLI 会解析 start 命令。 查找 package.jsonnpm 会从当前目录开始向上查找 package.json 文件直到找到最近的配置文件。 读取 scripts 字段在 package.json 的 scripts 对象中查找 start 字段 {scripts: {start: node server.js} } 如果未定义 startnpm 会尝试默认行为运行 node server.js若存在该文件。 如果既没有定义 start 也没有 server.jsnpm 会报错 Missing script: start。 2. 执行生命周期钩子 npm 会按顺序触发与 start 相关的生命周期脚本如果存在 prestart在 start 命令执行前运行。 start执行用户定义的脚本。 poststart在 start 命令执行后运行。 例如 {scripts: {prestart: echo 准备启动...,start: node app.js,poststart: echo 已启动} } 执行顺序为prestart → start → poststart。 3. 环境变量与路径设置 npm 在执行脚本时会为子进程即脚本运行的进程设置以下环境变量 PATH 扩展将项目的 node_modules/.bin 目录添加到 PATH 中使得可以直接运行安装的 CLI 工具如 webpack、react-scripts。 NODE_ENV 默认值如果未显式设置NODE_ENV 默认为空但在某些框架如 Create React App 中会强制设置为 development。 其他 npm 变量如 npm_package_name包名、npm_package_version版本号等可直接在脚本中使用。 4. 执行用户定义的脚本 假设 package.json 中定义如下 {scripts: {start: react-scripts start} } 实际执行流程 路径解析npm 会在 node_modules/.bin 中查找 react-scripts 可执行文件。 启动子进程通过操作系统的 shell如 Bash、PowerShell 或 cmd.exe执行命令。 参数传递将 start 作为参数传递给 react-scripts。 保持进程运行启动的进程如开发服务器会持续运行直到手动终止CtrlC或发生错误。 5. 依赖工具链的启动以 Create React App 为例 以 react-scripts start 为例详细流程 检查依赖确保 webpack、babel、webpack-dev-server 等工具已安装。 读取配置合并默认配置与项目中的 webpack.config.js如有覆盖。 启动开发服务器 监听文件变化通过 webpack --watch。 启用热模块替换HMR。 打开浏览器默认 http://localhost:3000。 输出日志在终端显示编译状态、错误或警告信息。 6. 进程管理与信号处理 保持进程活跃开发服务器通常是长期运行的进程如 Express 服务器或前端开发服务器。 信号处理 按下 CtrlC 会发送 SIGINT 信号终止进程。 进程崩溃时可能触发 SIGTERM。 后台进程如果脚本中启动了守护进程如 node server.js npm 不会自动管理其生命周期。 7. 常见场景与问题 场景 1启动一个 Express 服务器 直接运行 server.js启动 HTTP 服务并监听端口。 {scripts: {start: node server.js} } 场景 2启动前端开发服务器如 Vue CLI 触发 webpack-dev-server提供热重载和代理配置。 {scripts: {start: vue-cli-service serve} } 常见问题 权限问题若脚本需要管理员权限如监听 80 端口需使用 sudo npm start。 端口冲突如果端口被占用进程会抛出 EADDRINUSE 错误。 依赖缺失未安装 react-scripts 或 vue-cli-service 会导致命令找不到。 8.总结 执行 npm start 的完整流程 解析 package.json 中的 scripts.start。 触发 prestart 钩子如果有。 设置环境变量并启动子进程。 执行用户定义的命令如启动服务器或构建工具。 触发 poststart 钩子如果有。 保持进程运行直至手动终止。 coress-env cross-env 是一个用于跨平台设置环境变量的 Node.js 工具。它解决了在不同操作系统如 Windows 和 Unix 类系统中设置环境变量语法不一致的问题使得开发者可以在 package.json 的脚本中统一使用相同的命令。 为什么需要 cross-env 在开发 Node.js 项目时经常需要在命令行中设置环境变量。例如 # Unix 系统Linux/macOS NODE_ENVproduction node app.js# Windows 系统 set NODE_ENVproduction node app.js 不同操作系统设置环境变量的语法不同这会导致以下问题 脚本不兼容在 package.json 的 scripts 中编写的命令无法跨平台运行。 维护成本高需要为不同操作系统编写不同的脚本。 cross-env 通过提供统一的命令格式屏蔽了操作系统差异使脚本更具可移植性。 coress-env核心功能 跨平台支持在 Windows、macOS、Linux 中统一使用相同的命令。 简化脚本无需编写条件判断或特定于平台的语法。 兼容性支持所有 Node.js 版本和主流包管理工具npm、Yarn、pnpm。 coress-env安装 通过 npm 或 Yarn 安装为开发依赖 npm install --save-dev cross-env # 或 yarn add --dev cross-env coress-env基本用法 在 package.json 的 scripts 中使用 cross-env 设置环境变量 示例 1设置 NODE_ENV {scripts: {build: cross-env NODE_ENVproduction webpack,start: cross-env NODE_ENVdevelopment node server.js} } 示例 2传递多个环境变量 {scripts: {test: cross-env API_URLhttp://localhost:3000 DEBUGtrue mocha} } 示例 3处理带空格的值需用引号包裹 {scripts: {run:app: cross-env GREETING\Hello World\ node app.js} } coress-env总结 cross-env 是解决跨平台环境变量设置问题的轻量级工具通过统一命令语法 消除 Windows 和 Unix 系统间的脚本差异。 简化 package.json 的维护。 提升开发体验和团队协作效率。 npm、pnpm、yarm、bun、npx的差异 1. 核心定位与关联性 工具定位关联性npmNode.js 默认包管理器所有工具的基础定义 package.json 规范其他工具均兼容 npm 生态。pnpm高效磁盘存储包管理器兼容 npm 命令和 package.json通过硬链接和符号链接优化依赖存储。Yarn改进版包管理器最初为解决 npm 性能问题而生兼容 npm 生态提供更严格的依赖锁定机制。Bun全栈运行时与包管理器兼容 npm 和 Yarn 命令内置超快包管理、测试、脚本运行等功能。npx临时执行包命令工具随 npm 5.2 内置用于直接运行本地或远程包的可执行文件。 2. 核心差异对比 特性npmpnpmYarnBunnpx安装方式嵌套存储依赖全局存储 硬链接扁平化存储全局缓存 并行安装不安装直接执行依赖存储node_modules 冗余单一全局存储 符号链接扁平化 node_modules全局缓存 符号链接无安装速度较慢快快极快Rust 实现快速仅下载临时包磁盘占用高低共享依赖中等低无Lock 文件package-lock.jsonpnpm-lock.yamlyarn.lockbun.lockb无工作区支持需要手动配置内置内置内置无兼容性Node.js 标准完全兼容 npm兼容 npm兼容 npm/Yarn依赖 npm核心优势官方默认节省磁盘空间稳定可靠极速全栈工具链临时运行命令缺点依赖冗余、速度慢生态兼容性偶发问题配置复杂度较高新工具生态待完善无法管理长期依赖 3. 命令对比 操作npmpnpmYarnBunnpx初始化项目npm initpnpm inityarn initbun init-安装依赖npm installpnpm installyarn installbun install-添加生产依赖npm add lodashpnpm add lodashyarn add lodashbun add lodash-添加开发依赖npm add -D eslintpnpm add -D eslintyarn add -D eslintbun add -d eslint-全局安装npm install -g tscpnpm add -g tscyarn global add tscbun add -g tsc-运行脚本npm run devpnpm run devyarn devbun run dev-临时执行命令npx create-react-apppnpm dlx create-react-appyarn dlx create-react-appbunx create-react-appnpx create-react-app 4. 使用场景示例 npm 场景新项目默认使用或需要与旧项目兼容。 示例 npm init -y npm install express npm run start pnpm 场景需节省磁盘空间如 Monorepo 项目或依赖版本冲突频繁。 示例 pnpm add react18 pnpm run build Yarn 场景需要严格依赖锁定或使用 Yarn Workspaces。 示例 yarn add lodash --immutable yarn workspace frontend dev Bun 场景追求极速安装和全栈工具链如同时管理 JS/TS 和 SQLite。 示例 bun install bun test bun run dev npx 场景临时运行脚手架工具或 CLI 命令。 示例 npx create-next-applatest npx http-server ./dist 5.总结 npm基础工具适合大多数项目。 pnpm适合磁盘敏感或依赖冲突多的场景。 Yarn适合需要稳定锁文件或复杂 Monorepo。 Bun适合追求速度和全栈能力的新项目。 npx适合临时运行一次性命令。 常用命令行接口 以下是常见的命令行接口CLI选项列表涵盖开发、工具链和服务器场景中的高频参数及其用途 1.基础操作 参数用途示例--help / -h显示帮助信息命令用法和选项说明npm run build --help--version / -V显示工具或应用的版本号node --version--verbose输出详细日志调试时使用webpack --verbose--silent静默模式减少日志输出npm install --silent--dry-run模拟执行不实际执行操作测试命令效果npm publish --dry-run 2.网络与端口 参数用途示例--port / -p指定服务监听的端口号next dev --port 8080--host指定服务绑定的主机如 0.0.0.0 允许外部访问vite --host 0.0.0.0--open / -o启动后自动打开浏览器create-react-app --open--proxy设置代理服务器地址webpack-dev-server --proxy http://api.example.com 3.文件与目录 参数用途示例--config / -c指定配置文件路径eslint --config .eslintrc.cjs--output / -o指定输出目录或文件tsc --outDir dist--watch / -w监视文件变化并自动重新执行nodemon --watch src--force强制覆盖文件或跳过安全检查rm -rf --force node_modules 4.环境与模式 参数用途示例--mode设置运行模式如 development/productionvite build --mode production--env注入环境变量webpack --env NODE_ENVprod--production标记为生产环境安装依赖时跳过 devDependenciesnpm install --production 5.调试与日志 参数用途示例--debug启用调试模式输出额外信息node --debug app.js--inspect启用 Node.js 调试器配合 Chrome DevToolsnode --inspect server.js--log-level设置日志级别如 error, warn, infonpm install --log-level warn 6.依赖管理 参数用途示例--save / -S将依赖添加到 dependencies默认行为npm install lodash --save--save-dev / -D将依赖添加到 devDependenciesnpm install eslint --save-dev--global / -g全局安装包系统级可用npm install http-server -g 7.其他高频参数 参数用途示例--yes / -y自动确认所有提示非交互模式npm init -y--ignore-scripts跳过包安装时的生命周期脚本执行npm install --ignore-scripts--timeout设置超时时间如网络请求超时curl --timeout 5000 URL--no-optional跳过安装 optionalDependencies 中的依赖npm install --no-optional 8.总结 通用性大部分工具支持 --help 和 --version是快速查阅文档的入口。 组合使用参数可组合如 npm run dev -- --port 3000 --open。 工具差异不同工具可能有特定参数如 vite --strictPort 强制端口占用检查。 最佳实践具体参数以工具文档为准使用前建议通过 --help 验证。 script文件解读 1. 基础开发命令 Key用途工具示例start启动本地开发服务器如 React、Next.js 项目react-scripts startdev开发模式常见于 Vite、Nuxt.js 项目viteserve启动开发服务器Vue CLI 项目vue-cli-service servebuild构建生产环境代码压缩、打包、优化vite buildpreview本地预览生产构建结果Vite 特有vite preview 2. 测试与代码质量 Key用途工具示例test运行单元测试jesttest:watch监听文件变化自动运行测试jest --watchlint静态代码检查检查语法、风格问题eslintlint:fix自动修复可修复的代码规范问题eslint --fixformat代码格式化统一缩进、引号等风格prettier --writetypecheckTypeScript 类型检查不生成文件tsc --noEmit 3. 钩子脚本Hooks Key用途示例场景pre[start]在 start 命令前执行如 prestart类型检查、环境准备post[build]在 build 命令后执行如 postbuild分析构建结果、清理临时文件pre[test]在 test 命令前执行如 pretest先运行代码检查 4. 高级场景 Key用途工具示例analyze分析构建产物体积查看哪些模块占用较大source-map-explorerstorybook启动组件开发环境Storybookstart-storybookdeploy部署到静态托管平台如 GitHub Pages、Vercelgh-pagesdocker:build构建 Docker 镜像docker builddocker:run运行 Docker 容器docker run 5. 实用工具 Key用途工具示例clean清理构建产物或临时文件如 dist、node_modulesrimrafprepare在 npm install 后自动执行常用于安装 Git 钩子husky install 6.完整的 package.json 示例 {name: my-project,version: 1.0.0,scripts: {// --- 基础命令 ---start: react-scripts start, // 启动开发服务器dev: vite, // 开发模式Viteserve: vue-cli-service serve, // 启动开发服务器Vue CLIbuild: vite build, // 构建生产环境代码preview: vite preview, // 预览生产构建结果test: jest --coverage, // 运行测试Jesttest:watch: jest --watch, // 监听文件变化运行测试lint: eslint . --ext .js,.ts, // 代码规范检查ESLintlint:fix: eslint . --fix, // 自动修复代码规范问题format: prettier --write ., // 代码格式化Prettiertypecheck: tsc --noEmit, // TypeScript 类型检查prepare: husky install, // 安装 Git 钩子Huskyclean: rimraf dist node_modules, // 清理构建产物和依赖// --- 钩子脚本 ---prestart: npm run typecheck, // 在 start 前执行postbuild: npm run analyze, // 在 build 后执行pretest: npm run lint, // 在 test 前执行// --- 高级场景 ---analyze: source-map-explorer dist/*.js, // 分析构建包体积storybook: start-storybook -p 6006, // 启动 Storybookdeploy: gh-pages -d dist, // 部署到 GitHub Pagesdocker:build: docker build -t my-app ., // 构建 Docker 镜像docker:run: docker run -p 8080:80 my-app // 运行 Docker 容器},dependencies: {// 依赖项...},devDependencies: {// 开发依赖项...} }
http://www.zqtcl.cn/news/546302/

相关文章:

  • 美食网站设计的基本思路大网站开发语言
  • 个人网站模板打包下载最近新闻热点国家大事
  • flash做网站步骤中国网评中国网评
  • 网站添加备案号比较好的网站建设公司
  • 旅游电子商务网站建设目的广告设计与制作主修课程
  • 网站标题写什么作用记事本做网站如何添加图片
  • 海口建站模板厂家下载什么网站做吃的
  • 网站建设的指导书动效网站建设
  • 万州做网站的公司wordpress练习
  • 网站域名dnsgoogle推广教程
  • 网站建设报价方案doc网站建设seo视频教程
  • 北京免费建站网络营销怎么做查询网站后台
  • 深圳外贸网站推广用html制作个人博客
  • 建设银行网站最近打不开吗wordpress c
  • 网站icp备案费用浅谈做网站的好处
  • 制作网站需要懂哪些在线设计平台的市场调研
  • 接计设做的网站河南网站建设华企祥云
  • 网站系统维护一般要多久企业网站推广工具
  • 如何诊断网站seo做个网站商场需要多少
  • 腾讯云做视频网站吗创业商机网加工项目
  • 网站建设论文文献郑州seo外包费用
  • 网站优化西安如何免费推广网站
  • 固原市建设局网站外贸网站建设方法
  • 做违规网站主页制作语言缩写
  • 汝南县网站建设怎么注册公司钉钉账号
  • 网站建设酷隆信通网站开发中心
  • 保定网站建设方案报价怎么做网站_
  • 做网站功能的框架结构图做网站用python好吗
  • 襄樊市网站建设模版网站建设企业
  • 网站换服务器php大流量网站开发规范