小编Bri*_*den的帖子

如何让 npm 使用缓存

更新

我改变了这个问题的方向,最终利用 Docker 镜像层来缓存 npm 安装,除非 package.config 有更改,请参见此处

请注意,关于这个问题,我仍然在从属 Jenkins Docker 映像中构建我的 AngularJs Docker 映像,但我不再在 Docker 从属中运行 npm install,我将我的应用程序文件复制到我的 AngularJs Docker 映像并运行 npm install AngularJs Docker 映像,从而获得 npm 安装的 Docker 缓存层,灵感来自这里的这个好主意/答案

-------------------------------END 更新----------------- -------------

好的,我应该添加一个警告,即我在 Docker 容器中,但这实际上并不重要,我不会停止容器,并且我有用于 npm 缓存文件夹的卷以及用于运行 npm 命令的用户。

安装了 npm 的 Docker 容器的目的是它是一个构建从站,由 Jenkins 启动以构建一个 AngularJs 应用程序。问题是它非常慢,每次都下载所有需要的 npm 包。

jenkins 是用户,构建服务器上的 jenkins 帐户是“正在运行的人” npm install

我有运行npm installcmd:的用户的 npm 文件夹/home/jenkins/.npm和命令npm config get cache所说的文件夹是我的缓存目录:的卷/root/.npm。并不是说容器卷应该重要,因为我在运行npm install. …

caching node.js npm docker

6
推荐指数
1
解决办法
7699
查看次数

Web API IE9 JSON数据"是否要打开或保存此文件"

首先,请理解我并不是想在IE9中查看JSON.我一直都在使用Fiddler.我有一个名为Fine Uploader的第三方上传程序,在成功上传Ajax文件时需要JSON响应消息.

现在我明白IE9没有MIME来显示JSON,但我不是试图显示JSON.我只是在ajax上传一些文件并且IE9试图打开我的ajax响应后返回一个JSON响应.

由于我打算用JSON格式化所有Web API响应,我是否必须为每个api调用添加自定义text/html响应内容类型以使我的应用程序与IE9兼容?严重荒谬的东西,我无法克服多少时间浪费在处理IE兼容性问题上.

asp.net-mvc asp.net-mvc-4

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

Bootstrap工具提示导致屏幕在iPad上跳转

因此,当使用Knockout.js将工具提示应用于某些KO绑定HTML元素时,我正在使用knockout-bootstrap.js lib来协助引导工具提示初始化.

<a href="#" data-bind="attr: { tabindex: -1 }, tooltip: { title: buyerHelp, placement: 'top', trigger: 'click', container: 'body' }"><i class="glyphicon glyphicon-help"></i></a>
Run Code Online (Sandbox Code Playgroud)

我正在使用触发器:'click'而不是悬停,因为悬停工具提示在使用iPad显示后不会再次隐藏自己.当我点击工具提示图标时,工具提示显示正常但如果页面滚动则会跳回到顶部.我不确定这个问题应该采取什么方向.

我目前正在使用Bootstrap 3.0,但与Boostrap 2.3有同样的问题谢谢!

css ipad twitter-bootstrap knockout.js

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

C#隐式更新传递给方法的参数,没有返回类型,也没有out或ref用法

这对我来说非常时髦,显然开发人员应该使用关键字out但我不相信这甚至可以工作:

public BusinessResponse<MyResultType> MyMethod(){

    BusinessResponse<MyResultType> res = new BusinessResponse<MyResultType>();
    ProcessResult(res);

    return res; //this has the values set by ProcessResult!!! How?
}

private void ProcessResult(BusinessResponse<MyResultType> result)
{
    result.State = BusinessResponseState.Success;
    //set some other stuff in the result argument
}
Run Code Online (Sandbox Code Playgroud)

我的同事说这被称为"深度参考",我不敢相信这在C#中起作用.我会重构使用outaka private void ProcessResult(out BusinessResponse<MyResultType> result)但我仍然想知道为什么这段代码有效.

UPDATE

所以看起来我不正确,这段代码很好.似乎情绪是,作为C#开发人员,我应该立即知道,因为传递给processResult的参数是堆上的引用类型,通过值传入引用本身的副本,并且复制的引用仍然指向同一个对象.

c#

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

从发布而不是在Visual Studio 2012中的Web应用程序项目的网站中排除文件夹

我找不到在线排除Web应用程序项目文件夹的方法:http : //www.asp.net/web-forms/overview/deployment/advanced-enterprise-web-deployment/ exclude-files-and-folders 从部署

我还可以找到一种从在线发布网站中排除文件的方法:从Visual Studio中发布的网站中 排除文件

而且我可以找到一种从网上发布网站中排除文件夹的方法:http : //forums.asp.net/t/1179077.aspx?Exclude+Folder+ from+Website+ in+Visual+Studio

最后一种解决方案是您可以通过添加下划线来重命名文件夹,而发布将被忽略。

但是我无法重命名我的文件夹,因为有些Web链接依赖于该文件夹,而系统代码则依赖于该文件夹的名称。

还有其他方法可以从网站发布(而非Web应用程序项目)中排除文件夹吗?

**请注意,我有一个.tfignore文件,但“发布”不会读取该文件。

asp.net asp.net-mvc visual-studio-2012

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

在Visual Studio工具窗口选项卡中显示图标而不是单词

我知道这很简单,但是昨天,Visual Studio 2012 Professional突然开始在选项卡中显示“ Solution Explorer”,“ Team Explorer-Home”等,而不是漂亮的小图标。有谁知道如何带回图标?

在此处输入图片说明

visual-studio solution-explorer visual-studio-2012

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

声明单独的Firebase Cloud Functions并仍使用Express.js

许多使用Express for Firebase Cloud Functions的示例

在我发现的每个示例中,代码都将Express应用程序公开为单个Cloud Function:

exports.app = functions.https.onRequest(app);
Run Code Online (Sandbox Code Playgroud)

对于一个人的Firebase项目功能,这意味着他们将看到一个名为“ app”的条目,并且所有Express.js HTTP侦听器的所有日志都将转到Firebase中的一个位置。这也意味着,无论Express.js应用程序有多大,Firebase都会在该应用程序的生产环境中部署单个功能。

另外,在使用firebase-functions.https.onRequest每种导出时,例如在Typescript中,您可以获得单独的功能:

export const hello = functions.https.onRequest(async (req, res) => {
  res.status(200).send('hello world');
});
Run Code Online (Sandbox Code Playgroud)

在Firebase控制台中,我有hello函数,在index.js中还有另一个函数:

在此处输入图片说明

这也意味着Firebase将为每个函数创建不同的节点/实例:helloemphemeralKey

我将在Firebase控制台中为每个功能获得单独的日志记录。

我想使用中间件来确保将有效的身份验证令牌传递给我的端点Cloud Functions(例如Firebase示例),但是我不希望不使用单个“ app”单个Cloud Function,而希望在函数导出中使用专用函数我的index.js。

node.js express firebase firebase-authentication google-cloud-functions

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

Chrome for Mac OS无法加载新的MD5哈希包

在Windows版Chrome上不会发生这种情况,在Mac OS版Chrome上不会发生这种情况。Chrome并没有从服务器请求新资产,而是尝试从以前的npm构建中检索旧的应用程序捆绑包哈希,并且该应用程序无法加载!

Chrome开发者控制台显示相关的404错误

这对我来说没有意义,app- [hash] -bundle.js已更改,hash已更改,应该破坏Chrome缓存。

我不确定该怎么做,我不必做类似app- [hash] -bundle.js?refresh = [ticks]之类的散列操作,其目的相同。

javascript google-chrome angular

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

如何为每个异步调用 FutureBuilder 显示进度指示器

下面我有一个简单的设置来演示使用FutureBuilder. 当Future async呼叫第一次触发时,我们会CircularProgressIndicator在屏幕上看到 。

Future 完成后,我们会看到包含刷新的 UI FlatButton,按下时setState会调用以重绘小部件。

Future 异步函数再次被调用,但这次我们看不到,CircularProgressIndicator因为它AsyncSnapshot.hasData是 true。

这意味着AsyncSnapshot.hasData它具有先前已完成的 FutureBuilder 构建的价值。

如何实现 UI 小部件的“纯粹”刷新/清除,以便我CircularProgressIndicator在每个异步数据调用上显示并按下调用的每个刷新按钮setState

import 'dart:async';
import 'package:flutter/material.dart';

class DemoFutureBuilder extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => _DemoFutureBuilder();
}

class _DemoFutureBuilder extends State<DemoFutureBuilder> {
  var _displayText = 'Hello World';

  @override
  Widget build(BuildContext context) {
    return FutureBuilder(
        future: helloWorldAsync(),
        builder: (context, snapshot) {
          if (!snapshot.hasData) {
            print('=============== Snapshot no …
Run Code Online (Sandbox Code Playgroud)

dart flutter

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

Visual Studio 2013使用旧网站名称

因此,在Visual Studio 2012中,我将解决方案中的网站重命名为"oldname"到"newname".我在Visual Studio 2013中打开了这个解决方案,不知怎的,它使用"oldname"代替"newname".这不是ASP.NET网站应用程序只是一个ASP.NET网站.

我搜索了解决方案目录中所有文件的内容,但找不到"oldname".我100%肯定"oldname"不在.sln文件中,并且网站当然没有项目文件.

visual-studio visual-studio-2012 visual-studio-2013

4
推荐指数
2
解决办法
4004
查看次数