没有package.json的node.js项目可以吗?我在互联网上看到的都是package.json
没有package.json会有什么影响?
如何首先创建package.json?它是自动创建的吗?我想知道为什么我没有package.json
答案 0 :(得分:19)
从根本上说,package.json
是您的应用程序的元文件。它列出了您的应用程序的所有配置。
没有package.json会有什么影响?
在本地运行所有代码并且无需进行任何部署时,没有任何内容。
让我们设置一个场景让您更好地理解这一点。
想象一下,您使用node编写了一个出色的应用程序。现在你周围的所有小鸡都想玩它。太棒了!
现在你想把它交给他们,在开发过程中你npm install
编写了很多东西,你的项目规模超过了4TB。
没有可用于存储庞大代码库的数据存储设备。
然后,你梦中的女孩说我想要它,我现在想要它。因此,您开始为节点应用程序搜索应用程序部署过程。
这就是你偶然发现一个名为package.json
的神奇事物。
所以你要做的是列出npm install
属性下的所有dependencies
ed模块。然后你删除node_modules
文件夹,添加package.json
并在github中提交整个该死的东西。甚至.zip
文件也是10MB
然后她得到了代码。
npm install && npm start
中的类型(将安装package.json`中的所有依赖项并启动您的应用程序)
但是,如果你有package.json,那么就是指定所有依赖项的地方。
使用--save
npm install
标记
实施例
npm install express --save
如何首先创建package.json?是自动创建的吗?
您可以手动创建文本文件并将其另存为package.json
OR
更复杂的方法是使用命令
npm init
我也是! :)我想知道为什么我没有package.json
你最有可能遵循一个不强调项目初始配置的教程,或者这些教程的作者假定读者已经开始具备所有基础知识。
答案 1 :(得分:4)
如果您编写npm init
,则会自动创建。
然后,您使用npm install packagename --save
添加的每个包都将添加到依赖项列表中。
您需要package.json
,这样当您想在另一台计算机上使用您的项目时,您不必复制所有node_modules
,而只需复制您编写的.js
个文件,资产和package.json
。然后,您可以运行npm install
命令,它将自动下载并安装所有必需的模块(可在package.json
内的依赖项列表中找到)。
您也可以手动创建或编辑它,但在安装模块时添加--save
会更容易,因此您不必担心软件包版本等问题。
此外,如果您想创建一个npm包,一个开源项目或其他人将使用的东西,那么要求或者使用这个package.json
文件描述您的项目是正常的。
答案 2 :(得分:1)
package.json是npm文件,如果你不使用npm你将没有这个文件,如果你想在你的项目中使用外部库但是如果你不需要那么npm是一个很好的工具它(除非你做的事非常简单,否则很不可能),你也不需要package.json文件。
使用NSLog(@"didFinishRecordingToOutputFileAtURL - enter");
BOOL RecordedSuccessfully = YES;
if ([error code] != noErr)
{
// A problem occurred: Find out if the recording was successful.
id value = [[error userInfo] objectForKey:AVErrorRecordingSuccessfullyFinishedKey];
if (value)
{
RecordedSuccessfully = [value boolValue];
}
}
if (RecordedSuccessfully)
{
//----- RECORDED SUCESSFULLY -----
NSLog(@"didFinishRecordingToOutputFileAtURL - success");
NSString *albumName=strSessionName;
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library addAssetsGroupAlbumWithName:albumName
resultBlock:^(ALAssetsGroup *group) {
NSLog(@"added album:%@", albumName);
}
failureBlock:^(NSError *error) {
NSLog(@"error adding album");
}];
if ([library videoAtPathIsCompatibleWithSavedPhotosAlbum:outputFileURL])
{
// [library writeVideoAtPathToSavedPhotosAlbum:outputFileURL
// completionBlock:^(NSURL *assetURL, NSError *error)
// {
// if (error)
// {
//
// }
// else{
//
// }
// }];
//
__block ALAssetsGroup* groupToAddTo;
[library enumerateGroupsWithTypes:ALAssetsGroupAlbum
usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
if ([[group valueForProperty:ALAssetsGroupPropertyName] isEqualToString:albumName]) {
NSLog(@"found album %@", albumName);
groupToAddTo = group;
}
}
failureBlock:^(NSError* error) {
NSLog(@"failed to enumerate albums:\nError: %@", [error localizedDescription]);
}];
[library writeVideoAtPathToSavedPhotosAlbum:outputFileURL completionBlock:^(NSURL *assetURL, NSError *error){
if (error) {
NSLog(@"Final Video could not be saved");
}
else{
[library assetForURL:assetURL
resultBlock:^(ALAsset *asset) {
// assign the photo to the album
[groupToAddTo addAsset:asset];
NSLog(@"Added %@ to %@", [[asset defaultRepresentation] filename], albumName);
// UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Success" message:@"Video Saved to HubRamped Album." delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles: nil, nil];
// [alert show];
}
failureBlock:^(NSError* error) {
NSLog(@"failed to retrieve image asset:\nError: %@ ", [error localizedDescription]);
}];
}
}];
}
}
答案 3 :(得分:0)
它存在的可能原因是你可能输入了错误的命令如npm i -y
,你必须先初始化项目,只需输入命令npm init -y
欢迎。