小编Gre*_*Gum的帖子

为什么webpack 2 bundle使用`eval()`来包装代码?

我刚学习webpack.我注意到在生成的bundle.js中它使用eval(在"开发"模式下,而不是"生产",它产生完全不同的东西):

function(module, exports, __webpack_require__) {

"use strict";
eval("\r\nvar Component = (function () {\r\n    function Component() {\r\n        this.myProperty = \"Hello\";\r\n    }\r\n    return Component;\r\n}());\r\nexports.Component = Component;\r\n//# sourceMappingURL=component.js.map//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2FwcC9jb21wb25lbnQuanM/NjBiZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxudmFyIENvbXBvbmVudCA9IChmdW5jdGlvbiAoKSB7XHJcbiAgICBmdW5jdGlvbiBDb21wb25lbnQoKSB7XHJcbiAgICAgICAgdGhpcy5teVByb3BlcnR5ID0gXCJIZWxsb1wiO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIENvbXBvbmVudDtcclxufSgpKTtcclxuZXhwb3J0cy5Db21wb25lbnQgPSBDb21wb25lbnQ7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbXBvbmVudC5qcy5tYXBcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL2FwcC9jb21wb25lbnQuanNcbi8vIG1vZHVsZSBpZCA9IDBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=");

/***/ },
Run Code Online (Sandbox Code Playgroud)

这背后的原因是什么?使用eval函数似乎有点奇怪.

这就是生产版本的样子:

!function(n){function t(e){if(r[e])return r[e].exports;var o=r[e]={i:e,l:!1,exports:{}};return n[e].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var r={};return t.m=n,t.c=r,t.i=function(n){return n},t.d=function(n,r,e){t.o(n,r)||Object.defineProperty(n,r,{configurable:!1,enumerable:!0,get:e})},t.n=function(n){var r=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(r,"a",r),r},t.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},t.p="",t(t.s=1)}([function(n,t,r){"use strict";var e=function(){function n(){this.myProperty="Hello"}return n}();t.Component=e},function(n,t,r){"use strict";var e=r(0),o=function(){function n(){this.myComponent=new e.Component,console.log(this.myComponent.myProperty)}return n}();t.App=o}]);
Run Code Online (Sandbox Code Playgroud)

webpack webpack-2

14
推荐指数
1
解决办法
3141
查看次数

如何在DacPac中包含数据

在用于Visual Studio的Sql Server数据工具中,您可以创建Sql Server项目并导入数据库的结构.这非常有效.

是否也可以导入数据?例如,假设我有一个包含多种类型的Type表.我想在Sql Server Project中有这些数据,所以当我发布它时,它也会发布数据.

我能够弄清楚的最接近的是使用Sql Server对象资源管理器为数据创建脚本,然后手动将该脚本添加到项目中.

当我看到Sql Server数据工具的演示时,然后显示发布一个项目,然后使用复制和粘贴将数据导入数据库.当然有更好的方法.

编辑多年以后,我终于搞清楚了:出口有两种类型:1.DACPAK - 仅包括结构,2.BACBAK包括数据和结构.

您可以从SSMS创建:1.DACPAK:选择您的数据库,右键单击Tasks-> Extract Data Tier App.2.选择数据库,右键单击Tasks-> Export Data Tier App.

sql-server visual-studio-2012

13
推荐指数
2
解决办法
8334
查看次数

我可以在没有转换器的情况下使用JSPM吗?

我使用的是jspm 0.16.2.

我正在使用这个测试项目

当我将Transpiler设置为none时: transpiler: "none"

我收到一个错误 XHR error (404 Not Found) loading http://localhost:53404/none.js

如果我将转换器设置为'test',它会给出相同的错误,除非找到它 test.js

这是jspm的错误吗?

我想不使用转换器,但使用system.js加载AMD模块.

当我从config.js中删除了transpiler选项时,它会尝试加载Traceur.

我想在运行时没有运行Transpiler.

jspm

13
推荐指数
1
解决办法
2447
查看次数

如何在打字稿中使用javascript

我有一个名为ui.js的javascript文件.

ui.js里面是UI设置代码.

if (!("ontouchstart" in document.documentElement)) {
    document.documentElement.className += " no-touch";
    var jScrollOptions = {
        autoReinitialise: true,
        autoReinitialiseDelay: 100
    };

    $('.box-typical-body').jScrollPane(jScrollOptions);
    $('.side-menu').jScrollPane(jScrollOptions);
    $('.scrollable-block').jScrollPane(jScrollOptions);
}
Run Code Online (Sandbox Code Playgroud)

我希望能够从打字稿中调用它.

我不想将代码转换为打字稿,因为有数百行,并不是真的有必要.在UI准备好之后,它只需要一次.

在我看来,我应该能够将它包装在一个函数中,然后从typescript中调用该函数.

但我无法弄清楚如何做到这一点.

注意:不是先前问题的重复,因为这是如何转换js,而不是直接使用它尽可能少的修改.

typescript

13
推荐指数
2
解决办法
3万
查看次数

预处理器在Typescript中定义

在c#中,您可以执行#if DEBUG ...在调试时执行一些特殊操作.我想在Typescript中做类似的事情,以便我可以在测试时设置表单值.

任何人都有关于如何在Typescript中实现这一点的任何建议?

我提出的最好的是设置类:

export class Settings {
    static isDebugging = false;
};
Run Code Online (Sandbox Code Playgroud)

然后在启动应用程序时,我将其设置为true.

然后在代码中,我导入类并检查它是否为真.

if (Settings.isDebugging)...
Run Code Online (Sandbox Code Playgroud)

似乎工作正常.

typescript

12
推荐指数
3
解决办法
1万
查看次数

如何在VS 2017中调试打字稿代码?

我有一个使用TypeScript的ASP.NET Core项目.

是否可以在Visual Studio中调试TypeScript代码?

typescript visual-studio-2017

12
推荐指数
2
解决办法
2万
查看次数

如何使用Linq搜索分层数据

我需要在树中搜索可能在树中任何位置的数据.如何用linq完成?

class Program
{
    static void Main(string[] args) {

        var familyRoot = new Family() {Name = "FamilyRoot"};

        var familyB = new Family() {Name = "FamilyB"};
        familyRoot.Children.Add(familyB);

        var familyC = new Family() {Name = "FamilyC"};
        familyB.Children.Add(familyC);

        var familyD = new Family() {Name = "FamilyD"};
        familyC.Children.Add(familyD);

        //There can be from 1 to n levels of families.
        //Search all children, grandchildren, great grandchildren etc, for "FamilyD" and return the object.


    }
}

public class Family {
    public string Name { get; set; } …
Run Code Online (Sandbox Code Playgroud)

c# linq

11
推荐指数
2
解决办法
1万
查看次数

如何从ViewModel获取对当前路由器的引用

在我的viewmodel类中,如何获取对当前路由器的引用?

我真正想做的是获取当前的ModuleId.

在Durandal中,有system.getModuleId,但Durandal中没有系统,所以我认为路由器将拥有该信息.

aurelia

11
推荐指数
1
解决办法
1806
查看次数

如何在 Blazor Server 中实现自定义授权

我想完全绕过 AspnetCore 身份,而是使用对当前用户进行身份验证的自定义方法。

但是,我仍然希望现有的授权框架能够发挥作用。换句话说,我希望能够使用AuthorizeView@attribute [Authorize]来维护安全性。

我搜索了又搜索,但没有找到任何关于如何实现这一点的细节。

c# asp.net-core blazor blazor-server-side

11
推荐指数
2
解决办法
1万
查看次数

为什么Ajax.ActionLink更新整个页面而不仅仅是UpdateTarget

这应该只替换UpdateTarget,但它没有,它取代了整个页面,我不明白为什么.正在返回正确的局部视图,但它不是替换目标ID,而是替换整个页面.

<div id="magHeader">
        <p>this is a test.</p>
        @Ajax.ActionLink("Edit", "GetEditor", "Home", new AjaxOptions(){ UpdateTargetId = "magHeader", InsertionMode = InsertionMode.Replace})
</div>
Run Code Online (Sandbox Code Playgroud)

在运行时,链接如下所示:

<a href="/Home/GetEditor" data-ajax-update="#magHeader" data-ajax-mode="replace" data-ajax="true">Edit</a>
Run Code Online (Sandbox Code Playgroud)

有什么我做错了吗?在过去成功完成了这项工作,没有任何问题.

编辑 此问题的根本原因是在VS 2012中,您只需要添加对JQueryVal包的引用以使其工作.但是,在2013年,BundleConfig.cs被更改,因此JQueryVal包不再包含JQuery.Unobtrusive.所以简单的解决方法是将它添加回包中:

bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                    "~/Scripts/jquery.unobtrusive*",
                    "~/Scripts/jquery.validate*"));
Run Code Online (Sandbox Code Playgroud)

然后一切都会按预期工作.

asp.net-mvc jquery asp.net-mvc-5

10
推荐指数
1
解决办法
4081
查看次数