最近做一个项目,写nodejs,又写vue,然后就有点混乱了。
当时想引入一个config文件,然后很自然的啪啪啪的敲了下面几行代码
//错误代码export default const config = { static_img_url: 'http://localhost:7001/images/'}
啪啦啪啦,查了一下,说原因是export default中的default是一种特殊的系统变量,export default的含义是把此命令后面的变量赋值给default这个特殊的系统变量,并把它导出到其他模块中使用。如此一来,export default const...或者export default var...等语句就是非常明显的错误了。
好,改了一下如下:
//还是错误代码const config = { static_img_url: 'http://localhost:7001/images/'} export default config
还是报错:
为什么呢???发现掉坑了,搞混乱了。正确应该如下:
//正确代码const config = { static_img_url: 'http://localhost:7001/images/'}module.exports = config
其实就是Node和浏览器端所支持的模块规范不同。
- 关于exports和module.exports
在一个node执行一个文件时,会给这个文件内生成一个 exports和module对象,而module有一个exports属性。
exports = module.exports = {}; - 关于 export 和export default
export与export default均可用于导出常量、函数、文件、模块等
在一个文件或模块中,export、import可以有多个,export default仅有一个
通过export方式导出,在导入时要加{ },export default则不需要
export能直接导出变量表达式,export default不行。
参考引用:引用