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版本就可以正常工作了。