nodejs jsdom 模拟浏览器,执行DOM环境 js 文件

解决方案

  • npm install jsdom
const jsdom = require("jsdom");
// var MutationObserver = require("mutationobserver-shim");
var {JSDOM} = jsdom;
var dom = new JSDOM(`<!DOCTYPE html><p>Hello world</p>`);
var window = dom.window;
var document = window.document;
var self = window.self;
var File = window.File;
var Blob = window.Blob;
var WebSocket = window.WebSocket;
var FileReader = window.FileReader;
var location = window.location;
const MutationObserver = window.MutationObserver
var XMLHttpRequest = window.XMLHttpRequest;

import 报错

  1. 使用 Babel 翻译执行
npm install --save babel-core

npm install --save babel-preset-env

npm install babel-cli -g


  1. 添加文件.babelrc到第一层目录中
{
  "presets": [
    "es2015"
  ],
  "plugins": []
}

  1. Couldn‘t find preset “es2015“ relative to directory问题
npm install babel-preset-es2015 --save-dev
  1. sessionStorage/localstorage 报错
[DOMException [SecurityError]: sessionStorage is not available for opaque origins]
[DOMException [SecurityError]: localStorage is not available for opaque origins]

  • 通过生成DOM时,添加一个URL
var dom = new JSDOM(`<!DOCTYPE html><p>Hello world</p>`, {
  url: 'http://some.dum.site'
});
  1. 执行代码
babel-node xxxx.js

… es6 展开运算符报错

  1. 安装插件 npm install babel-preset-stage-2
  2. 在 .babelrc 中加入该插件
{
  "presets": [
    "es2015",
    "stage-2"
  ],
  "plugins": []
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值