【问题标题】:About publishing Angular 2 application关于发布 Angular 2 应用程序
【发布时间】:2016-08-22 16:10:03
【问题描述】:

我使用 npm 开发了一个 Angular 2 应用程序,作为一个新手,我不知道下面的一些方法。 当我发布时,我使用了npm publish,以便它在网络的 npm 帐户中发布应用程序。 所以在这里,有什么方法可以在 localhost 中发布我们的应用程序,因为我不想使用 npm 帐户,我只需要在发布时避免 node_modules 文件夹? 如果有任何其他方式可以用于在 npm 以外的本地发布 Angular2 应用程序,请告诉我。我试试看。

如果没有 npm 网络帐户无法发布应用程序,请告诉我。 如有错误,请原谅。谢谢您的建议:)

【问题讨论】:

  • 你能说得更具体些吗? angular2 应用程序可以使用npm start 在本地运行。当你说发布时,我不确定你想做什么
  • 我想在发布时避免开发依赖文件(node_modules),它正在发生,但我的应用程序是在 npm 帐户上发布的,然后当我运行命令 npm i myapp 它正在本地主机上安装。相反,我想直接在我的本地主机中发布。有什么办法吗?通过使用 Gulp 还是其他?如果不能,没问题,请告诉我。
  • @sridhar “发布到本地主机”到底是什么意思。您要归档什么发布?再具体点,否则我们将无法为您提供帮助,对不起。

标签: npm angular


【解决方案1】:

npm publish 是让一个库包可供其他人免费使用。

这不是您用于使 Web 应用程序可用的方法。这称为部署。 对于部署,您通常执行将 TS 转换为 JS 的构建步骤,并将它们组合到一个文件中,以减少浏览器为获取应用程序的所有源文件而需要发出的请求数。它还可以内联组件 HTML 和 CSS。此构建步骤还可以缩小和破坏 JS 代码,以进一步减小生成的文件大小。

可以将生成的输出复制到任何网络服务器能够为您的本地计算机或网络托管提供商的某些计算机上的浏览器提供服务的任何目录。

根据您的设置,有不同的方式来构建您的应用程序。

例如见How to deploy Angular 2 application developed in Typescript to production?

【讨论】:

  • 我还是有一些疑问,我认为有一个选项可以使用 npm 在私有网络服务器上发布我们的应用程序,如果是这样,我该怎么做?请帮帮我
  • 您可以运行您的私有 npm 存储库来托管库包,但这不服务于您的 Web 应用程序,它只允许您从该服务器npm install 一个包。如果你想运行你的网络应用,你想部署它,而不是发布。
【解决方案2】:

您需要浏览器,仅此而已

浏览器需要引用所有的js文件放在html中,他们不理解节点的require()形成模块依赖的方法

browserify 所做的是遍历项目的整个依赖关系图,递归地将所有需要的模块从给定的根目录开始捆绑到单个 js 文件中

通过节点包管理器安装它

npm install -g browserify

用它来捆绑所有需要的模块main.js

browserify main.js -o bundle.js

现在将单个脚本标签放入您的 html 中

<script src="bundle.js"></script>

【讨论】:

    【解决方案3】:

    据我所知,node_modules 包含 typescript 转译器和其他少数几个的依赖项。所以不使用 node_modules 就无法发布应用。

    也许你可以尝试使用PlnkrjsFiddle

    您可以使用 node_modules 的 cdn 链接在线导入并发布您的应用程序。

    与其他替代品相比,它会很容易。

    希望这会有所帮助。

    【讨论】:

    • 我认为 node_modules 文件是开发依赖项,而不是依赖项,对吗?开发后可以忽略devdependencies。一些像angular2.dev.js,system.js这样的文件是dependencies。所以我们要求即使在发布之后对吗?!
    猜你喜欢
    • 2016-09-29
    • 2016-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-10
    • 1970-01-01
    相关资源
    最近更新 更多