【问题标题】:express or express-generator: do i need both?express 或 express-generator:我需要两者吗?
【发布时间】:2016-12-24 07:37:02
【问题描述】:

刚刚探索 node.js 并遇到了 express;在 npm 存储库站点 https://www.npmjs.com/package/express 上,它明确指出安装是

$ npm install express

但如果我向下滚动快速入门提及

$ npm install -g express-generator@4

有人可以详细解释发生了什么吗?我用谷歌搜索并了解到在 express v3 中两者是捆绑在一起的,但在 express v4 中,生成器被拉出。

所以我需要同时安装两者吗?生成器是否会自动安装 express 而不是相反?我已经有 JS 疲劳了,我才刚刚开始 :-(

补充问题: 然后为了进一步混淆问题,我看到另一个问题,问我应该从“npm init”开始并要求 express,还是“express myApp”。现在到底是怎么回事,init 是从哪里来的?

2017 年 1 月 30 日更新 我已经接受了下面其他人的答案,但我也添加了我自己的答案,这是我当时作为一个困惑的完整初学者所寻求的答案。它可能会帮助其他人。

【问题讨论】:

  • 我不确定某些 prima dona 无所不知的人否决这一点的原因,在我看来,这是一个初学者会问的合理问题(或相关问题)。

标签: javascript node.js express express-generator


【解决方案1】:

我的理解是:

  • express 包是框架,它公开了您可以在代码中使用的功能
  • express-generator 封装了一个实用程序,该实用程序提供了命令行工具,您可以使用它来构建项目 - 即创建样板文件夹结构、文件和代码。

作为样板文件的一部分,package.json 文件定义了您的项目的依赖项 - 即您的项目需要的 npm 包。那里列出了快递包裹。

了解 npm install 指令(将当前工作目录设置为包含 package.json 的项目文件夹运行)会将 package.json 中列出的所有依赖项“安装”到您的项目文件夹中以使其可用对于您的应用程序,这样做就足够了:

  • npm install express-generator -g
  • npm 安装

【讨论】:

  • 接受您的回答,因为我对“快递”有了更多的了解。但是,它不仅仅是您上面描述的两个步骤。对于一个完整的初学者来说应该是。 1) 全局安装 express-generator; 2)生成样板文件,例如表达myApp; 3) cd 到 myApp 文件夹,您将在其中找到 package.json(+ 其他文件和文件夹)。 4) npm install,最终将 express(+任何其他依赖项)本地安装到您的应用程序。
【解决方案2】:

这个答案是指 Windows 上的“express”v4。我不知道 express 3 或更少的行为是什么。

0) 以管理员身份打开 cmd 提示符

1) 全局安装 express-generator;

npm install -g express-generator

2) 在您选择的目录中生成样板文件,例如

express myApp

3) cd 到 myApp 文件夹,您将在其中找到 package.json(+ 您的主 app.js 文件,+ 其他文件夹)

4) 最后将“express”安装到您的应用文件夹(+ package.json 中定义的任何其他依赖项)

npm install

注意:您在步骤 4) 中安装的 express 是指构成 express web 框架一部分的一组 javascript 文件,供您自己的应用程序使用和引用;步骤 2) 中提到的 express 实际上是您在步骤 1) 中全局安装的 express-generator cmd 行。

至于我的补充问题,npm init 用于创建一个 package.json 文件,您可以在其中响应提示,npm init -y 自动创建 package.json使用默认值,无论哪种情况,它都与 express 无关。

如果您想在没有样板文件/文件夹的情况下从头开始构建项目,首先 npm init,然后 npm install --save express,这会将 express 本地安装到您的应用程序, --save 选项在 package.json 中添加 express 作为依赖项。

底线,要使用 express web 框架,你不必安装 express-generator,但你必须安装 express。如果你在开发 3 个使用 express 的应用程序,最简单的做法是在每个应用程序本地安装 express 3 次。

【讨论】:

    【解决方案3】:

    您可以同时使用这两者,但您将无法找到 express 和 express-generator 之间的任何区别,但是,中间件等许多其他模块并不是 main express 所必需的,因此它们被添加为单独的模块,而生成器就是其中之一。

    这种分离的想法使 express 变得轻巧,并设法有效地生成事物。

    在 V4 中,generator 没有与 express 绑定,您需要下载两个单独的模块。

    【讨论】:

    • 我对你回答的第一部分持怀疑态度。 “你可以同时使用两者,你​​将无法找到 express 和 express-generator 之间的任何区别。”分离部分我理解,并且在我问这个问题的时候我已经理解了。
    猜你喜欢
    • 2017-09-25
    • 1970-01-01
    • 2016-01-31
    • 1970-01-01
    • 2012-02-09
    • 1970-01-01
    • 1970-01-01
    • 2019-04-23
    • 1970-01-01
    相关资源
    最近更新 更多