我试图在我的项目中运行一些ES6代码,但我得到了一个意外的令牌导出错误。

export class MyClass {
  constructor() {
    console.log("es6");
  }
}

当前回答

实际上我想添加一个简单的解决方案。使用常量反撇号(')。

const model = `<script type="module" src="/"></<script>`

其他回答

我通过制作一个入口点文件来解决这个问题。

// index.js
require = require('esm')(module)
module.exports = require('./app.js')

我在app.js内外导入的任何文件都可以使用导入/导出 现在你可以像node index.js一样运行它

注意:如果app.js使用export default,在使用入口点文件时,这将变成require('./app.js').default。

对于那些在2022年看到这篇文章的人来说,我也犯了同样的错误,但我把代码改成了这样:

    module.exports = () => {
    getUsers: () => users;
    addUser: (user) => users.push(user);
  };

此时没有必要使用Babel (JS已经变得非常强大),因为您可以简单地使用默认的JavaScript模块导出。查看完整教程

Message.js

module.exports = 'Hello world';

app.js

var msg = require('./Messages.js');

console.log(msg); // Hello World

我的意见

出口

ES6

myClass.js

export class MyClass1 {
}
export class MyClass2 {
}

other.js

import { MyClass1, MyClass2 } from './myClass';

CommonJS替代

myClass.js

class MyClass1 {
}
class MyClass2 {
}
module.exports = { MyClass1, MyClass2 }
// or
// exports = { MyClass1, MyClass2 };

other.js

const { MyClass1, MyClass2 } = require('./myClass');

出口违约

ES6

myClass.js

export default class MyClass {
}

other.js

import MyClass from './myClass';

CommonJS替代

myClass.js

module.exports = class MyClass1 {
}

other.js

const MyClass = require('./myClass');

//✅使用模块。出口而不是出口 模块。出口= { 人, };