抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

nodejs的导入导出模块太蛋疼了,今天试试esm规范的导入导出

直接使用import xxx from xxx的语法会报错,因为这是commonjs规范的语法

提示说将type属性改成module,或者使用.mjs后缀,这两种方法都可以

改package.json:

{
  "name": "nodejs",
  "type": "module" // 新增type属性,值为module
  ...
}

下面介绍一下导入导出代码:

// name.js
const name = 'sunzehui'
export {
    name
}
// main.js
import {name} from './name.js'

console.log(name) // output: sunzehui

导出函数:

function sayHi() {
    console.log("Hi")
}

export {
    sayHi
}
import {sayHi} from './name.js'

sayHi()  // output: Hi

异步导入:

const {sayHi} = await import('./name.js')

sayHi()

注意事项

commonjs规范中的特性在esm规范中已经用不了了

例如:

console.log(require)
console.log(module.exports)
console.log(exports)
console.log(__dirname)
console.log(__filename)
// output :
// xxx is not defind

评论