Skip to content

Commit 96d00a2

Browse files
committed
feat: support node
1 parent 5b7513c commit 96d00a2

File tree

7 files changed

+57
-13
lines changed

7 files changed

+57
-13
lines changed

.npmrc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
shell-emulator=true
2+
strict-peer-dependencies=false
3+
legacy-peer-deps=true
4+
engine-strict=false

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@
1010
1111
```html
1212
使用 UMD 格式
13-
<script src="https://www.unpkg.com/@skillnull/device-js@2.1.6/dist/device.js"></script>
13+
<script src="https://www.unpkg.com/@skillnull/device-js@2.1.7/dist/device.js"></script>
1414
# or
15-
<script src="https://cdn.jsdelivr.net/npm/@skillnull/device-js@2.1.6/dist/device.js"></script>
15+
<script src="https://cdn.jsdelivr.net/npm/@skillnull/device-js@2.1.7/dist/device.js"></script>
1616

1717

1818
使用 ES 格式
19-
<script src="https://www.unpkg.com/@skillnull/device-js@2.1.6/dist/device.es.js" type="module"></script>
19+
<script src="https://www.unpkg.com/@skillnull/device-js@2.1.7/dist/device.es.js" type="module"></script>
2020
# or
21-
<script src="https://cdn.jsdelivr.net/npm/@skillnull/device-js@2.1.6/dist/device.es.js" type="module"></script>
21+
<script src="https://cdn.jsdelivr.net/npm/@skillnull/device-js@2.1.7/dist/device.es.js" type="module"></script>
2222
```
2323

2424
> #### 安装

dist/device.es.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/device.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@skillnull/device-js",
3-
"version": "2.1.6",
3+
"version": "2.1.7",
44
"description": "Get device information by javascript.",
55
"main": "dist/device",
66
"author": "skillnull",
@@ -32,8 +32,13 @@
3232
"@babel/runtime": "^7.24.7",
3333
"@rollup/plugin-babel": "^6.0.4",
3434
"@rollup/plugin-commonjs": "^26.0.1",
35-
"@rollup/plugin-node-resolve": "^15.2.3",
35+
"@rollup/plugin-node-resolve": "^15.3.1",
3636
"@rollup/plugin-terser": "^0.4.4",
3737
"rollup": "^4.18.0"
38+
},
39+
"dependencies": {
40+
"@rollup/plugin-json": "^6.1.0",
41+
"jsdom": "^26.0.0",
42+
"rollup-plugin-polyfill-node": "^0.13.0"
3843
}
3944
}

rollup.config.js

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,16 @@
11
import { babel } from "@rollup/plugin-babel"
22
import terser from "@rollup/plugin-terser"
3-
import resolve from "@rollup/plugin-node-resolve"
43
import commonjs from "@rollup/plugin-commonjs"
4+
import nodePolyfills from 'rollup-plugin-polyfill-node'
5+
import { nodeResolve } from '@rollup/plugin-node-resolve'
6+
import json from '@rollup/plugin-json'
7+
8+
const globals = {
9+
"dayjs": "dayjs",
10+
"md5": "md5",
11+
"qs": "qs",
12+
"crypto-js": "crypto"
13+
}
514

615
/**
716
* amd - 异步模块加载,适用于 RequireJS 等模块加载器
@@ -13,18 +22,32 @@ import commonjs from "@rollup/plugin-commonjs"
1322
*/
1423
export default {
1524
input: "src/device.js",
16-
plugins: [resolve(), babel({ babelHelpers: "runtime", exclude: /node_modules/ }), commonjs(), terser()],
25+
plugins: [
26+
json(),
27+
nodeResolve({
28+
exportConditions: ["node", "browser"],
29+
preferBuiltins: true,
30+
browser: true
31+
}),
32+
commonjs(),
33+
nodePolyfills(),
34+
babel({babelHelpers: "runtime", exclude: /node_modules/}),
35+
terser()
36+
],
1737
output: [
1838
{
1939
file: `dist/device.es.js`,
2040
format: "es",
21-
compact: true // 是否压缩 Rollup 产生的额外代码
41+
compact: true, // 是否压缩 Rollup 产生的额外代码
42+
globals: globals
2243
},
2344
{
2445
file: `dist/device.js`,
2546
name: 'Device',
2647
format: 'umd',
27-
compact: true
48+
compact: true,
49+
globals: globals
2850
}
29-
]
51+
],
52+
context: "window"
3053
}

src/device.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1050,5 +1050,17 @@ const Device = (function () {
10501050
}
10511051
}
10521052
})()
1053+
1054+
if (typeof window === "undefined" || typeof window === null) {
1055+
const jsdom = require("jsdom")
1056+
const {JSDOM} = jsdom
1057+
const DOM = new JSDOM(``)
1058+
window = DOM?.window
1059+
document = DOM?.window?.document
1060+
globalThis.window = window
1061+
globalThis.document = document
1062+
}
1063+
10531064
window.Device = Device
1065+
10541066
export default Device

0 commit comments

Comments
 (0)