Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
microvideo-base-demo
Advanced tools
这是一个npm 基础标准包,用于规范npm的基本规则。
在此,通过一个简单的npm包示例,来展示如何使用此包(当你使用它变成一个正式包时,请在此文件中描述具体用法)。
具体规则请仔细阅读以下说明
包名必须为小写,并且只能包含小写字母、数字和连字符(-)。
前缀固定:microvideo
、@mv
(由公司名microvideo得出)
microvideo
为前缀,例如:
@mv
前缀分组,例如:
@mv/tools
,公司基础工具组件@mvc/xxx
,软件研发中心的xxx组件@mvc/zhdd-xxx
,软件研发中心-指挥调度的xxx组件版本号必须为X.Y.Z的格式,其中X、Y和Z必须是数字,并且X、Y和Z的值必须大于0。 格式为“主版本号.次版本号.修订版本号”,例如“1.2.3”。这样的格式使得开发者可以清晰地了解软件包的版本变更情况,从而做出合适的更新决策。
npm(Node Package Manager)的版本号规范主要遵循语义化版本号(Semantic Versioning,简称SemVer)的规则。这种规范通过三位数字(主版本号、次版本号和修订版本号)来清晰地表达软件包的版本变更情况。
主版本号(MAJOR)
:当进行不兼容的API更改时,应增加主版本号。这通常意味着在更新到新版本时,可能需要进行代码的重写或适应性调整。次版本号(MINOR)
:当添加向后兼容的新功能时,应增加次版本号。这意味着在更新到新版本时,不会破坏现有的API,但可以享受新的功能。修订版本号(PATCH)
:当进行向后兼容的错误修复时,应增加修订版本号。这表示在更新到新版本时,不会引入新功能或改变现有功能,只是修复已知问题。总的来说,npm的版本号规范旨在通过明确的版本号表示方式,帮助开发者理解和管理软件包的版本变化,以促进项目的稳定发展和维护。
限制只能使用pnpm按照依赖
需要使用-S
或-D
选项来指定依赖的安装位置。
|-- /dist # 编译后的代码或构建产物存放目录(可选)
|-- /docs # 文档目录(可选)
| |-- API.md
| ...
|-- /example # 示例代码目录(可选)
| |-- index.js
| |-- package.json
|-- /src # 源代码目录,index为必要,其他的以情况定
| |-- index.js/index.ts # 包的入口文件 (必要)
| |-- /assets # 静态资源文件
| |-- /utils # 工具函数目录
| |-- /components # 组件目录
| ... # 其他源代码文件或目录
|-- LICENSE # 许可证文件
|-- package.json # 包配置文件 (必要)
|-- README.md # 项目说明 (必要)
|-- .eslintrc # ESLint配置文件 (必要)
|-- .prettierrc # Prettier配置文件 (必要)
|-- .gitignore # Git忽略文件
|-- .npmignore # npm发布时忽略的文件
|-- .babelrc # Babel配置文件(如果使用Babel)
|-- tsconfig.json # TypeScript配置文件(如果使用TypeScript)
|-- ... # 其他配置文件或文件
package.json 文件是 npm 包的核心配置文件,它包含了关于包的元数据,这些信息对于 npm 以及使用你包的开发者来说都是非常重要的。以下是 package.json 中常见的一些字段及其简要说明:
name
: 包的名称。这个名称在 npm 仓库中必须是唯一的。version
: 包的版本号。通常遵循语义化版本控制(Semantic Versioning,简称 SemVer)。description
: 对包的简短描述。author
: 包的作者信息,可以是一个字符串(名字和邮箱)或一个对象(包含姓名、邮箱和网址等)。contributors
: 为包做出贡献的其他人列表。main
: 指定包的入口文件,即当其他项目通过 require 或 import 引入你的包时,npm 会加载这个文件。files
: 指定包中需要包含的文件或目录列表(优先级比.npmignore
高)。scripts
: 定义了一系列的脚本命令,可以在命令行中通过 npm run XXX 来执行。dependencies
: 生产环境中需要的依赖包列表。devDependencies
: 开发过程中需要的、但生产环境中不需要的依赖包列表。peerDependencies
: 与你的包一同使用、但不由你的包安装的其他包。optionalDependencies
: 可选的依赖,如果安装失败,npm 不会抛出错误。engines
: 指定包运行的 Node.js 和 npm 的版本范围。os
: 指定包可以在哪些操作系统上运行。cpu
: 指定包可以在哪些 CPU 架构上运行。license
: 包的许可证类型。可以是常见的许可证名称(如 "MIT"),也可以是一个指向许可证文件的 URL。repository
: 指定包的代码仓库地址,通常是 Git 仓库。bugs
: 指定报告 bug 的地址或邮箱。homepage
: 包的官方网站或项目主页。keywords
: 与包相关的关键词列表,有助于其他开发者在 npm 上搜索到你的包。这些字段并不是全部,package.json 还有很多其他的字段可以配置,但上述是最常见和基础的字段。根据你的项目需求,你可能还需要配置其他的字段。总之,package.json 文件为 npm 提供了关于包的完整信息,使得 npm 能够正确地安装、使用和管理你的包。
FAQs
npm 基础标准包
The npm package microvideo-base-demo receives a total of 1 weekly downloads. As such, microvideo-base-demo popularity was classified as not popular.
We found that microvideo-base-demo demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.