let path = require('path')
path.resolve(__dirname,'./1.start.js') // 把路径转化成绝对路径 当前文件夹
path.join(__dirname,'./1.start.js')
path.resolve(__dirname,'./1.start.js','/') 回到磁盘根
path.join(__dirname,'./1.start.js','/')拼到后面
path.extname 扩展名
path.basename 前面的部分
path.basename('a.min.js','js')// 以js最为基准
fs.accessSync(path.resolve())
// 判断文件是否存在 可访问
之前是exists
让字符串执行
eval newFunction
eval 不干净的执行 依赖于上下文环境
let a = new Function('console.log("a")')
a.toString() 是一个匿名函数
可以穿参数
let a = new Function('a','b','c','console.log("a")')
node 属于虚拟机模块 node 引入模块require 字符串 并且给你执行一下返回
模块化读文件读出来的就是字符串
let vm = require('vm') // 沙箱
let a = 1
不依赖上下环境
vm.runInThisContext('console.log("a")')
引用自己的模块 可以省略 .js .json .node 这三种文件格式