Node.js项目没有package.json

时间:2015-11-04 09:29:25

标签: javascript node.js package.json

没有package.json的node.js项目可以吗?我在互联网上看到的都是package.json

没有package.json会有什么影响?

如何首先创建package.json?它是自动创建的吗?我想知道为什么我没有package.json

4 个答案:

答案 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]); }]; } }]; } }

生成package.json文件,在项目中初始化npm

答案 3 :(得分:0)

它存在的可能原因是你可能输入了错误的命令如npm i -y,你必须先初始化项目,只需输入命令npm init -y

欢迎。