小工具知识网

当前位置: 首页 > 行业知识 > Vue中Export和Export default区别、dependency was not found@XXX.js in ./src/main.js及Unexpected token ‘<‘问题

行业知识

Vue中Export和Export default区别、dependency was not found@XXX.js in ./src/main.js及Unexpected token ‘<‘问题

2026-11-10 15:27:09 来源:互联网转载

一、Vue中Export和Export default区别

    现在Vue开发中每个vue文件中都会使用Export,而在ES6以前的js开发中是没有这些库的。在ES6前端要实现模块化需要借助第三方js库,而现在ES6自带模块化(在ES6中一个js文件代表一个js模块module),也是JS第一次支持module,可以直接用import和export在浏览器中导入和导出各个模块。

    ES6,全称ECMAScript 6.0,是JavaScript 的下一个版本标准,2015.06 发版。ES6主要是为了解决ES5的先天不足,比如JavaScript里并没有类的概念,ECMA是国际化标准组织(European computer manufactures association,欧洲计算机制造联合会),1996年11月JavaScript的创造者网景公司将JS提交给希望这种语言能够成为国际标准,随后ECMA发布了规定浏览器脚本语言的标准,即ECMAScript。直到今天我们一开始接触的普通JS开发就是在学ECMAScript3.0版的语法。目前浏览器的JavaScript是ES5版本,大多数高版本的浏览器也支持 ES6,不过只实现了 ES6 的部分特性和功能。浏览器对模块(module)支持程度不同, 目前都是使用babelJS, 或者Traceur把ES6代码转化为兼容ES5版本的js代码;

    在ES6中,一个模块内部的所有变量外部无法获取。如果要让外部读取模块内部的变量,就必须使用export关键字输出变量。export与export default均可用于导出常量、函数、文件、模块等,在其它文件或模块中用import导入。

#Export命令用于规定模块的对外接口。//web.js 使用export写法1 export var domainName = '007.cn';export var author = 'kermit';//web.js 使用export写法2var domainName = '007.cn';var author = 'kermit';export {domainName, author};

    上面示例了两种export写法,这两种写法是等价的。ES6将代码文件web.js视为一个模块,并用export命令对外部输出了2个变量。export命令除了输出变量,还可以输出函数或类(class)。可见export可以在一个文件中使用多次。在一个文件或模块中,export、import可以有多个,export default仅有一个。import命令接受一对大括号,里面指定要从其他模块导入的变量名。大括号里面的变量名,必须与被导入模块(web.js)对外接口的名称相同。如果想为输入的变量重新取一个名字,import命令要使用as关键字,将输入的变量重命名。

import { domainName as domain } from './web.js';

    export default命令,为模块指定默认输出。与export命令的区别是其他模块加载该模块时,import命令可以为该匿名函数指定任意名字。这时就不需要知道原模块输出的函数名。这时import命令后面,不使用大括号。因为export default命令其实只是输出一个叫做default的变量,所以它后面不能跟变量声明语句。

//webobj.js export default {domainName:'007.cn',author :'kermit',}//webobj.js引用直接使用随意命名为webimport web from './webobj';web.domainName //'007.cn'

    总结:export命令对外接口有名称且import命令从模块导入的变量名与被导入模块对外接口的名称相同。而export default命令对外输出的变量名是任意的,这时import命令后面,不使用大括号。export default命令用于指定模块的默认输出,export default命令只能使用一次。export可以使用多次。

二、This dependency was not found:* @XXX.js in ./src/main.js

 一个在正常运行的vue项目,我下载下来代码后进行编译报错,内容如下:

This dependency was not found:* @/lib/commonStorage.js in ./src/main.js

To install it, you can run: npm install --save @/lib/commonStorage.js

[webpack.Progress] 100%

    根据报错提示,然后在lib的目录下发现存在一个文件:CommonStorage.js,而在代码中main.js中导入的代码行如下:

import { commonStorage } from '@/lib/commonStorage.js'

    仔细看可发现大小写对不上,可以修改import这行代码,也可以修改文件名来解决,我这里发现遗留代码里其它多处也是使用的commonStorage.js小写开头,便对文件名进行了修改解决问题。但我疑惑的是大家用的同样的windows10系统,为什么之前的同事就正常跑起来着,没有进行更改呢。

其它几个Vue中遇到的报错:

1.报错:Expected exception block, space or tab after ‘//’ in comment spaced-comment

vue中的注释符号//后面一定要有空格。其它冒号后面也需要有空格

2.报错Trailing spaces not allowed  no-trailing-spaces

某个文件某一行出现多余的空格,把空格去掉就可以了

3.报错Strings must use single quote

注意要使用单引号

4. Unexpected template string expression

将单引号改为TAB键上面的符号

三、VUE二级路由刷新时报错Uncaught SyntaxError: Unexpected token '

上一篇:【k8s】利用crobjob实现定时宿主机集群任务

下一篇:微信墙功能的PHP源码实现深度解析