小编Shi*_*umi的帖子

是否可以在没有web dyno的情况下将Node.js应用程序部署到Heroku?

对于某些背景故事和参考,以下是一些Heroku文档页面的引用.

Heroku Node.js支持>激活:

当应用程序package.json在根目录中有文件时,将使用Heroku Node.js buildpack .

来自Heroku Node.js支持>默认Web进程类型:

首先,Heroku查找指定流程类型的Procfile.

如果Procfile在构建过程中应用程序的根目录中没有,则您的Web进程将通过运行来启动npm start,[...]

流程类型和Procfile>流程类型作为模板:

Procfile包含许多进程类型声明,每个声明都在一个新行上.每个进程类型都是在启动该进程类型的dyno时执行的命令声明.

例如,如果web声明了进程类型,那么当启动此类型的dyno时web,将执行与进程类型关联的命令.例如,这可能意味着启动Web服务器.


package.json在根目录中有一个文件(将激活Node.js buildpack),我还在Procfileroot中包含了一个包含以下内容的文件:

service: npm start
Run Code Online (Sandbox Code Playgroud)

我认为不定义webdyno会导致它不被创建; 只service应按照声明中的配置创建dyno Procfile.

相反,发生了什么事是一个积极的 web赛道是自动使用创建npm start不活跃 service赛道使用的定义创建Procfile.然后我不得不:

  • heroku ps:scale web=0
  • heroku ps:scale service=1

我绝对可以想象想在Heroku上运行Node.js"服务"应用程序,它不接受任何传入连接,只接收传出连接.有没有办法配置Node.js buildpack,以便web在未定义dyno时不自动创建dyno?我查看了许多文档,寻找以下方法之一:(1)将其定义为或(2) 删除自动生成的web …

javascript heroku node.js

9
推荐指数
2
解决办法
1067
查看次数

有没有办法将方法标记为确保T不为空?

例如,如果我有一个定义为...的方法

T Create()
{
    T t = Factory.Create<T>();

    // ...

    Assert.IsNotNull(t, "Some message.");
    // -or-
    if (t == null) throw new Exception("...");
    // -or- anything that verifies that it is not null
}
Run Code Online (Sandbox Code Playgroud)

......我从其他地方打电话给那个方法......

void SomewhereElse()
{
    T t = Create();
    // >><<
}
Run Code Online (Sandbox Code Playgroud)

... at >><<,我知道(意思是我,写这个的人)t保证不会为空.是否有一种方法(可能是我没有找到的属性)将方法标记为确保它返回或以其他方式传递的引用类型(可能是out参数)由内部逻辑保证不为空?

我不得不不好意思地承认,ReSharper的主要是为什么我不在乎,因为它强调了任何它认为可能会导致两种InvalidOperationExceptionNullReferenceException.我认为它正在读取我可以在我的方法上标记的东西,或者它只是知道Assert.IsNotNull,简单的布尔检查或其他一些东西将消除某些东西为空的可能性,并且它可以删除突出显示.

有什么想法吗?我只是成为了哦 - 我 - 上帝 - 重塑者的牺牲品 - 突显它 - 我必须要解决这种疾病吗?

c# null attributes

8
推荐指数
1
解决办法
1467
查看次数

使用 msbuild 和大型解决方案防止所有复制操作

我会立即承认我完全不熟悉 msbuild,并希望我没有问一个愚蠢的问题。

我们有一个大型 .NET 解决方案,其中包含大约 316 个项目。在构建过程中,将 DLL 从一个文件夹复制到下一个文件夹似乎占用了大量构建时间(我认为,这样它们就可用于解析引用?)。有没有一种方法可以指示 MSBuild 将每个项目的输出文件放入一个文件夹中以避免需要这样做?这似乎是一件明智的事情,因为最终我们将最终结果从最终输出文件夹中复制出来,而所有其他中间 DLL 都被浪费了。

.net msbuild

5
推荐指数
1
解决办法
2119
查看次数

在OR赋值中围绕yield表达式的括号需要括号的确切语法歧义是什么?

以下代码...
假设yield是在生成器函数内部,something并且else已定义,等等.

const value = something || yield else();
Run Code Online (Sandbox Code Playgroud)

...在V8(Chrome或Nodejs)中生成以下内容:

                const start = initial || yield wait();
                                         ^^^^^
SyntaxError: Unexpected strict mode reserved word
Run Code Online (Sandbox Code Playgroud)

...这在Firefox中:

SyntaxError: yield is a reserved identifier
Run Code Online (Sandbox Code Playgroud)

我第一次注意到这是在我写的蓝鸟 协程中.解决方法是将yield wait()括号括起来.

此错误发生在分析时而不是执行时; 所以,我的第一个假设是,这是因为这里存在句法模糊性.我查看了yield关键字,它将其定义为:

[rv] = yield [expression];
Run Code Online (Sandbox Code Playgroud)

yield接受一个表达式并返回一个值.如果没有||(OR)运算符,就不会发生这种情况const value = yield else();; 所以,我查看了运算符优先级.的||(OR)运算符在评价5的前yield在操作者2.优先级看起来不错.

看起来||(OR)运算符需要在任何一侧使用表达式,而我认为这yield [expression] 是 …

javascript yield node.js ecmascript-6

5
推荐指数
1
解决办法
116
查看次数

标签 统计

javascript ×2

node.js ×2

.net ×1

attributes ×1

c# ×1

ecmascript-6 ×1

heroku ×1

msbuild ×1

null ×1

yield ×1