# james-sensor

> james-sensor

Latest version **0.0.8** (published 2022-07-29) · ISC license · 0 weekly downloads

## Install

```sh
npm install james-sensor
pnpm add james-sensor
yarn add james-sensor
bun add james-sensor
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.8 |
| Published | 2022-07-29 |
| First published | 2022-07-26 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 2 |
| Unpacked size | 177.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Maintainers | james.yang |

## Links

- npm: https://www.npmjs.com/package/james-sensor
- npm.io page: https://npm.io/package/james-sensor

## Dependencies (2)

- [@babel/runtime](https://npm.io/package/@babel/runtime.md) ^7.12.5
- [@babel/runtime-corejs2](https://npm.io/package/@babel/runtime-corejs2.md) ^7.12.5

## Recent versions

- 0.0.8 (latest) — 2022-07-29
- 0.0.7 — 2022-07-28
- 0.0.6 — 2022-07-28
- 0.0.5 — 2022-07-28
- 0.0.4 — 2022-07-27
- 0.0.3 — 2022-07-27
- 0.0.2 — 2022-07-26
- 0.0.1 — 2022-07-26

## README

# 项目

    james-sensor

# 项目本地开发

## 项目本身使用: rollupV2 工具库打出的 esm 包

### 1. 项目初始化

```
    npm install
```

### 2. 库暴露出来的方法

```
    创建并初始化
        /*
            __DEV__: 是否是开发环境
            options: 用于覆盖默认配置
         */
        const createAndInitSA = (__DEV__ = true, options = {})

    用户登录
        const login = (id) => {
            //  默认情况下，是把 cookie_id 作为 Distinct ID 的
            sensors.login(id)
        }

    设置用户属性
        const setProfile = (params) => {
            sensors.setProfile(params)
        }

    设置事件静态公共属性
        const registerPage = (params) => {
            sensors.registerPage(params)
        }

    手动埋点方法
        const track = (name, params) => {
            sensors.track(name, params)
        }

    为React项目的使用导出了方法：
        SensorContext
        SensorProvider

    为Vue2项目的使用导出了方法：
        provide
        inject
```

### 4. sensorsdata.es6.min.js 从哪里来？

    github上搜索sa-sdk-javascript

### 5. 项目打包

```
    npm run build
```

### 6. 发布 npm 包

```
    npm run patch
    npm login
    npm publish
```

# npm 包使用

```
    下载包：
        nexus -------- https://nexus.eeo-inc.com/repository/eeo-npm/
        nrm use nexus
        npm i -D james-sensor


    React项目使用:
        入口文件:
            import { SensorProvider } from 'james-sensor'
            <SensorProvider __DEV__={true} options={{ show_log: true }}>
              <App />
            </SensorProvider>

        hooks文件：
            import { useContext } from 'react'
            import { SensorContext } from 'james-sensor'

            export const useSensor = () => {
                const { track } = useContext(SensorContext)
                // 埋点
                const sensor = function (eventName, name) {
                    track(eventName, {
                        tab_name: name,
                    })
                }

                return {
                    sensor,
                }
            }


    Vue2项目使用:
        入口文件:
            import { createAndInitSA, provide } from 'james-sensor'
            new Vue({
                beforeCreate(){
                    createAndInitSA()
                },
                provide
            })

        打点文件:
            import { inject } from 'james-sensor'
            export default {
                inject,
                methods: {
                    sensors(card) {
                        track("HelpCenter", {
                            tab_name: card.tabName
                        });
                    },
                }
            }
```

# 神策数据文档地址

[地址](https://manual.sensorsdata.cn/sa/latest/sdk-web-57999858.html)

# 注意

    1. 使用.npmrc配置registry之后就不需要切换镜像源发布npm包了
    2. 注意package.json中的main字段和files字段

---
_Source: https://npm.io/package/james-sensor · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
