How to add a vanillaJS npm script to a Nuxt plugin?(如何将vanillaJS NPM脚本添加到Nuxt插件?)
问题描述
我在获取AWS S3将图像直接保存到AWS S3时遇到问题。
我尝试将AWS包作为插件导入,但不起作用。
我的nuxt.config.js
中有以下内容
plugins: [
...
'~plugins/S3.js'
],
在我的plugins/s3.js
import vue from "vue"
import S3 from "aws-s3";
vue.use(S3)
我尝试在我的文件中使用它
const S3Client = new S3(config)
S3Client
.uploadFile(file, this.getRandomName(10))
.then(data => {
console.log(data)
})
.catch(err => {
console.log(err)
})
我收到错误
MultiplePhooupload.vue?7624:110未捕获(承诺中)参考错误:未定义S3
如果我将其直接写入我的组件,则它已定义并且正在工作
import S3 from "aws-s3";
推荐答案
如果您想将其用作Nuxt插件(这将在全球范围内可用,但即使在您不使用它的地方也会增加应用的总捆绑包大小和加载时间),您可以在s3.js
插件中执行此操作
import S3 from 'aws-s3'
export default ({ _ }, inject) => {
const config = {
bucketName: 'myBucket',
dirName: 'photos' /* optional */,
region: 'eu-west-1',
accessKeyId: 'ANEIFNENI4324N2NIEXAMPLE',
secretAccessKey: 'cms21uMxçduyUxYjeg20+DEkgDxe6veFosBT7eUgEXAMPLE',
s3Url: 'https://my-s3-url.com/' /* optional */,
}
inject('s3', new S3(config))
}
您将能够通过Vue组件中的this.$s3
访问该实例!
这需要使用不公开Vue方法的包来完成。文档中有更多信息:https://nuxtjs.org/docs/2.x/directory-structure/plugins#inject-in-root--context
Josh Deltener在这个问题上有一个great article,有多种方法。
如果您希望具有动态选项,还可以将参数传递给您的注入值,如链接的文档中所示。
这篇关于如何将vanillaJS NPM脚本添加到Nuxt插件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何将vanillaJS NPM脚本添加到Nuxt插件?


- addEventListener 在 IE 11 中不起作用 2022-01-01
- Css:将嵌套元素定位在父元素边界之外一点 2022-09-07
- Flexslider 箭头未正确显示 2022-01-01
- 如何使用 JSON 格式的 jQuery AJAX 从 .cfm 页面输出查 2022-01-01
- Fetch API 如何获取响应体? 2022-01-01
- 使用RSelum从网站(报纸档案)中抓取多个网页 2022-09-06
- 400或500级别的HTTP响应 2022-01-01
- Quasar 2+Apollo:错误:找不到ID为默认的Apollo客户端。如果您在组件设置之外,请使用ProvideApolloClient() 2022-01-01
- 失败的 Canvas 360 jquery 插件 2022-01-01
- CSS媒体查询(最大高度)不起作用,但为什么? 2022-01-01