ES6 使用不了import,export的?

使用webstorm,已经设置为es6语法了。

定义了一个类:definedClasses.js

class Person {
    constructor(name, age) {
        this.name = name
        this.age = age
    }

    eat(food) {
        console.info('info', `${this.name} is eating ${food}`)
    }
}

export default Person

然后,另一个文件do.js引入它:

import Person from './definedClasses'

function appp () {
    let person = new Person('tom', 33);
    person.eat('shits');
}

appp();

然后,却说。

import Person from './definedClasses'
       ^^^^^^

SyntaxError: Unexpected identifier
    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)
阅读 4.3k
5 个回答

ES6是语法规范, JS引擎是实现, 需要JS引擎支持才真支持

所以请检测执行环境是否支持ES6, 目前node环境是不支持该语法, 但是支持require('pkg')的方式

// import Person from './definedClasses'
const Person = require('./definedClasses')

./definedClasses

里面也需要修改

// export default something
module.exports = something

在persion.js里定义const

加个js试试
`import Person from './definedClasses.js'

都没编译。浏览器不认识。import会被编译成require,但是require也是node才认识,所以麻烦你用webpack编译下。。。。

node环境现在还不认import和export吧, 需要启用啥特性..
关键看你是怎么运行的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进