Amazon web services 如何使用webpack导入aws sdk
我在官员身上发现了这一点,但看起来他们拒绝回答。 所以我只能问这样的问题。 这是我的错误和警告日志:Amazon web services 如何使用webpack导入aws sdk,amazon-web-services,npm,webpack,aws-sdk,Amazon Web Services,Npm,Webpack,Aws Sdk,我在官员身上发现了这一点,但看起来他们拒绝回答。 所以我只能问这样的问题。 这是我的错误和警告日志: WARNING in ./~/aws-sdk/lib/util.js Critical dependencies: 40:30-45 the request of a dependency is an expression 43:11-53 the request of a dependency is an expression @ ./~/aws-sdk/lib/util.js 40:30-
WARNING in ./~/aws-sdk/lib/util.js
Critical dependencies:
40:30-45 the request of a dependency is an expression
43:11-53 the request of a dependency is an expression
@ ./~/aws-sdk/lib/util.js 40:30-45 43:11-53
WARNING in ./~/aws-sdk/lib ^\.\/.*$
Module not found: Error: Cannot resolve directory '.' in /Users/me/Documents/Sources/my-project/client/node_modules/aws-sdk/lib
@ ./~/aws-sdk/lib ^\.\/.*$
WARNING in ./~/aws-sdk/lib/api_loader.js
Critical dependencies:
13:15-59 the request of a dependency is an expression
104:12-46 the request of a dependency is an expression
108:21-58 the request of a dependency is an expression
114:18-52 the request of a dependency is an expression
@ ./~/aws-sdk/lib/api_loader.js 13:15-59 104:12-46 108:21-58 114:18-52
WARNING in ./~/aws-sdk/lib/region_config.json
Module parse failed: /Users/me/Documents/Sources/my-project/client/node_modules/aws-sdk/lib/region_config.json Line 2: Unexpected token :
You may need an appropriate loader to handle this file type.
| {
| "rules": {
| "*/*": {
| "endpoint": "{service}.{region}.amazonaws.com"
@ ./~/aws-sdk/lib ^\.\/.*$
ERROR in ./~/aws-sdk/lib/api_loader.js
Module not found: Error: Cannot resolve module 'fs' in /Users/me/Documents/Sources/my-project/client/node_modules/aws-sdk/lib
@ ./~/aws-sdk/lib/api_loader.js 1:9-22
ERROR in ./~/aws-sdk/lib/services.js
Module not found: Error: Cannot resolve module 'fs' in /Users/me/Documents/Sources/my-project/client/node_modules/aws-sdk/lib
@ ./~/aws-sdk/lib/services.js 1:9-22
有三种类型:
fs
就可以解决这个问题
json加载程序
,并在webpack.config.js
中设置它,但也可以解决这个问题
aws sdk
修复此问题。我可以从npm使用它
谢谢,aws sdk团队。配置:
module: {
noParse: [
/aws/
]
}
用法:
window.AWS指向全局AWS对象的引用。我发现它已为我修复
基本上,您需要导入库的构建版本
所有的功劳都归于作者。代码如下:
require('aws-sdk/dist/aws-sdk');
var AWS = window.AWS;
ES6版本:
import 'aws-sdk/dist/aws-sdk';
const AWS = window.AWS;
如果您正在创建一个节点包,那么使用noParse方法应该可以工作,因为这将webpack设置为不应用任何解析/加载程序。在创建
umd
格式化输出文件/库时,这对我不起作用
为了创建一个umd格式的库,我必须使用加载程序来浏览aws sdk
并处理json文件
安装装载机:
npm安装json加载程序——保存开发
npm安装转换加载程序brfs——保存开发
网页包配置:
module: {
loaders: [
{ test: /aws-sdk/, loaders: ["transform?brfs"]},
{ test: /\.json$/, loaders: ['json']},
]
},
output: {
library: 'LibraryName',
libraryTarget: 'umd'
},
resolve: {
extensions: ['', '.js']
}
将LibraryName
替换为您自己的名称空间。目前,该库将通过构造函数使用,如下所示:
var libObj = new LibraryName();
AWS SDK从2.6.1版开始向webpack
添加了支持,请参阅描述如何将AWS SDK
导入webpack
捆绑包的博客文章。使用npm安装json加载程序--保存开发
将以下代码添加到webpack.config.js
module: {
loaders: [{
test: /\.js$/,
loaders: ['babel'],
exclude: /node_modules/,
},
{
test: /.json$/,
loaders: ['json']
}]
}
只需将*作为AWS从“AWS sdk”导入
请注意,我们指定了一个加载程序来告诉webpack如何处理JSON文件的导入,在本例中,我们使用了前面安装的JSON加载程序。默认情况下,webpack只支持JavaScript,但使用加载程序添加对导入其他文件类型的支持。AWS SDK大量使用JSON文件,因此如果没有此额外配置,webpack在生成捆绑包时将抛出错误。真的吗?对我来说它仍然是坏的。这是现在做它的方式!错误:configuration.module有一个未知属性“loaders”。我在安装aws amplify时遇到此问题,它依赖于aws sdk,因此该问题似乎仍然存在。但是,编辑aws放大代码以使其正常工作似乎不太好