Angular SyntaxError:导出声明只能出现在模块的顶层
我最近使用下面的注释安装了Angular SyntaxError:导出声明只能出现在模块的顶层,angular,popper.js,Angular,Popper.js,我最近使用下面的注释安装了popper.js npm安装——保存popper.js angular popper 然后,我在angular.json "scripts": [ "node_modules/jquery/dist/jquery.min.js", "node_modules/popper.js/dist/popper.js", "node_modules/bootstrap/dist/js/boots
popper.js
npm安装——保存popper.js angular popper
然后,我在angular.json
"scripts": [
"node_modules/jquery/dist/jquery.min.js",
"node_modules/popper.js/dist/popper.js",
"node_modules/bootstrap/dist/js/bootstrap.min.js",
"src/assets/fancybox/js/jquery.fancybox.min.js"
]
但是当我运行应用程序时,我在scripts.js
中得到如下错误
SyntaxError:导出声明只能出现在模块的顶层
因此,根据我的经验,我也尝试通过
app.module.ts
导入。但是没有运气 为未来流浪者发布答案:
导入popper.js时,请使用UMD发行版
angular.json
scritps:[
...
"node_modules/popper.js/dist/umd/popper.min.js",
...
]
这是因为此发行版使用标准化的方式声明JS库,称为通用模块定义
更多信息:
很容易解决,将
bootstrap
或bootstrap.min
更改为bootstrap.bundle
或bootstrap.bundle.min
,因为这些文件包含popper.js。Popper是导致问题的原因。是否尝试导入UMD模块Popper.js/dist/umd
@Terrance00我刚刚试过,很酷,它正在工作。根目录中的popper.js
与umd
中的有什么区别?尽管如此,还是将此作为一个答案发布。向前看,这是否适用于angular中的所有第三方模块?我目前正在处理使用angular的旧库的问题-只有在您绝对需要IMO的情况下才应使用脚本导入。我更喜欢使用键入的接口,并按使用情况进行导入。然后让webpack处理分发。也就是说,有时候你只是有这些依赖项,然后UMD版本就可以正常工作了。