0

使用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)
2019-05-19 提问
5 个回答
1

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

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

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

./definedClasses

里面也需要修改

// export default something
module.exports = something
0

在persion.js里定义const

0

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

0

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

0

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

撰写答案

推广链接