Open sleepyShen1989 opened 1 year ago
require('XXX')
node_modules/XXX/index.js
{ private, // 当值为true时,npm不能发布(防止误操作) main, // 入口文件,require('XXX') 找node_modules/XXX/{ mainValue }.js commonjs module, // 入口文件,import xxx from 'XXX' esm unpkg, // cdn 服务商 jsdelivr, // cdn 服务商 typings, // .d.ts文件位置 engines, // 指定Node和npm版本号 files, // 将符合规则的文件传入npm文件 exports, // 支持条件判断 构建器支持exports 则读取exports,如果不支持,就使用之前的配置 sideEffects: false // treeshaking }
直接调用当前目录node_modules/.bin下的命令
node_modules/.bin
npm login
package.json
npm publish
npm unpublish
npm deprecate
import/require
pnpm store path
pnpm store prune
格式:window/mac
window/mac
copy foo.js foo_copy.js / cp foo.js foo_copy.js
mklink /H 链接出的文件 原文件 / ln 原文件 链接出的文件
mklink 链接出的文件 原文件/ln -s 原文件 链接出的文件
权限问题:以管理员身份打开
node_modules/.pnpm/node_modules
node_modules
node_modules/.pnpm
pnpm init
pnpm-workspace.yaml
packages: # 所有的前端项目存储的地方 - 'packages/*' # 给我所有项目使用的公共组件 - 'components/**' # 公共方法 api - 'api/**'
pnpm init & pnpm add axios
// base.js import axios from 'axios' let Axios = axios.create({ baseURL: '/' }) export default Axios
// user.js import Axios from './base' export const getUser = (data) => Axios.get(data)
// index.js export * from './user'
3. 修改api内部`package.json` ```js { "name": "@projectName/api", "private": true }
npm crate vite
pnpm i
pnpm add @projectName/api
import {getUser} from "@projectName/api"
import Button from './dir/Button.vue'; export default Button
{ "name":"@projectName/components", "private": true, "main": "index.js" }
import Button from "@projectName/components"
npm init的别名
npm
package.json配置
require('XXX')
默认值找node_modules/XXX/index.js
npx
直接调用当前目录
node_modules/.bin
下的命令发包
npm login
package.json
npm publish
删除
npm unpublish
npm deprecate
使用相关问题
import/require
语法pnpm
常用命令
pnpm store path
: 查看pnpm的存储store路径pnpm store prune
: 从store中删除当前未被引用的包来释放store空间软链接与硬链接
创立软链接与硬链接
格式:
window/mac
copy foo.js foo_copy.js / cp foo.js foo_copy.js
mklink /H 链接出的文件 原文件 / ln 原文件 链接出的文件
mklink 链接出的文件 原文件/ln -s 原文件 链接出的文件
权限问题:以管理员身份打开
优势
node_modules/.pnpm/node_modules
内部的同名依赖为硬链接,依赖的依赖为软链接,链接到内部一级目录node_modules
目录下为软链接(代码使用的包),链接到node_modules/.pnpm
内部monorepo入门例子
pnpm init
pnpm-workspace.yaml
配置,定义工作空间的根目录pnpm init & pnpm add axios
// user.js import Axios from './base' export const getUser = (data) => Axios.get(data)
// index.js export * from './user'
npm crate vite
创建项目pnpm i
pnpm add @projectName/api
import {getUser} from "@projectName/api"
npm crate vite
创建components目录import Button from './dir/Button.vue'; export default Button
pnpm add @projectName/api
import Button from "@projectName/components"