安装根库(例如npm install aws-amplify
)后,有时似乎需要安装其子库(例如npm install @aws-amplify/cli
)。为什么没有npm install aws-amplify
安装其中的每个子库?
这里的npm打包和安装规则是什么?有人可以帮助我清除这些信息吗?
答案 0 :(得分:1)
您正在混淆两种不同的语法。 BasicAWSCredentials creds = new BasicAWSCredentials("accessKey", "secretKey");
AmazonS3 s3 = AmazonS3ClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(creds))
.withRegion(Regions).build();
String bucketName = "bucketName";
String keyName = "keyName";
S3Object fileObj = s3.getObject(new GetObjectRequest(bucketName, keyName));
Scanner fileIn = new Scanner(new GZIPInputStream(fileObj.getObjectContent()));
if (null != fileIn) {
while (fileIn.hasNext()) {
System.out.println("Line: " + fileIn.nextLine());
}
}
}
是相对较新的。它曾经只是@namespace/package
,有些软件包仍在使用它。用旧的方法,包倾向于将自己命名为“命名空间包”,作为某种解决方法。
但这不是您的问题。您的问题是“他们为什么还要这样做?”。
您为什么不在那里下载所有npm软件包?然后,您拥有并可以使用所有东西,对吗?可以想象这没有多大意义,您只需要下载并使用所需的内容。想一想乔·阿姆斯特朗的这段话:
您想要一个香蕉,但是您得到的是一只大猩猩,拿着香蕉和整个丛林。
该引用完全脱离上下文,因为它更多地是关于不使用类,但是仍然适用于此。许多软件包将为您提供核心软件包以及根据您的需要添加子软件包的选项。就像您的示例一样,某人可能不需要package
,这样他就不必下载它。