运行环境
- node: v10.15.3
- npm: 6.4.1
- 使用VSCode的
Code Runner
插件运行
运行的代码
import * as date_fns from "date-fns"
console.log(date_fns.isValid(new Date("abc")))
console.log(date_fns.isValid(new Date("2020-06-28 17:26:03")))
异常信息
d:\Project\TypeScript\markdown\Date\use_date.js:1
(function (exports, require, module, __filename, __dirname) { import * as date_fns from "date-fns"
^
SyntaxError: Unexpected token *
at new Script (vm.js:80:7)
at createScript (vm.js:274:10)
at Object.runInThisContext (vm.js:326:10)
at Module._compile (internal/modules/cjs/loader.js:664:28)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)
at Module.load (internal/modules/cjs/loader.js:600:32)
at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
at Function.Module._load (internal/modules/cjs/loader.js:531:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:754:12)
at startup (internal/bootstrap/node.js:283:19)
分析
为什么会出现这样的错误呢?笔者纠结了半天,查找资料也没有太好的解决方式,看错误信息是导入date_fns
这个库出现的问题,但仔细检查,这个库也导入,在VSCode上编写也没有提示任何错误,但为什么不能运行呢?后来在同事的帮助下,说import
是ES6语法, 较新, 可能会导致js无法运行,换成require
试试。
解决
let date_fns = require("date-fns")
console.log(date_fns.isValid(new Date("abc")))
console.log(date_fns.isValid(new Date("2020-06-28 17:26:03")))
false
true