【问题标题】:ASP.net core install knockout issueASP.net 核心安装敲除问题
【发布时间】:2017-02-01 00:37:37
【问题描述】:

我已经创建了一个新的 Asp.net 核心项目,我正在尝试安装 Knockout.js,我这样做是通过关注 Knockoutjs install

问题是,我将淘汰赛添加到我的凉亭(最新版本 3.4.0 不是 3.3.0)。

"knockout": "^3.4.0"
}

我点击保存,然后转到 wwwroot/lib 文件夹,Knockout 文件夹就在那里。 然而它看起来像这样......

你可以看到有2个文件夹src和build但是没有knockout.js,实际上整个目录不包含knockout.js文件。

所以我想知道这里的问题是什么?有什么改变使教程无效吗?我在这里做了什么傻事吗?

编辑:我感觉这是源头,但不确定是否需要构建

EDIT2:这是位于 proj 源中的 Gruntfile.js,根据我所遵循的教程与 trask runner 结合使用。

module.exports = function (grunt) {
grunt.initConfig({
    bower: {
        install: {
            options: {
                targetDir: "wwwroot/lib",
                layout: "byComponent",
                cleanTargetDir: false
            }
        }
    }
});
grunt.registerTask("default", ["bower:install"]);
grunt.loadNpmTasks("grunt-bower-task");
};

我认为我的 gruntfile 在这里遗漏了一些关键内容,只是不确定是什么(我害怕不精通 grunt)

【问题讨论】:

    标签: javascript asp.net knockout.js asp.net-core


    【解决方案1】:

    Bower 拉出整个包并将其放入“bower_packages/package_name”文件夹。您可以强制 bower 更改默认目标目录(在您的情况下,它是“wwwroot/lib”文件夹),但它仍然会获得整个包。

    为了将包构建结果放入“wwwroot/lib”文件夹(包的 bower.json main“属性中提到的文件),我正在使用“bower-installer”工具。它调用 bower 来获取包和然后获取每个包的“主要”文件并将它们放在目标文件夹中。

    更新 1

    bower.json

       {
          "name": "_______",
          "version": "0.0.0",
          "dependencies": {
            "jquery": "~2.1.0",
            "jqueryui": "~1.11.4",
            "knockout": "^3.4.0"
          },
          "install": {
            "path": "wwwroot/lib",
            "sources": {
              "knockout": {
                "mapping": [
                  {
                    "bower_components/knockout/dist/knockout.debug.js": "knockout.js"
                  }
                ]
              }
            }
          }
        }
    

    假定的 bower 和 bower-installer 软件包是全局安装的。 只需在任何空文件夹中创建 bower.json 文件,然后从该文件夹中的命令行运行“bower-installer”命令。你应该得到带有完整包的“bower_components”文件夹和“\wwwroot\lib\knockout\knockout.js”文件。我刚刚检查过了。

    【讨论】:

    • "bower_packages/package_name" 我在我的项目中没有看到这个?
    • 您的软件包存储在“wwwroot/lib”中 - 例如“wwwroot/lib/knockout”。由于docs.asp.net/en/latest/client-side/bower.html的文章,“将bower.json左侧的twisty展开,找到.bowerrc文件。打开它,注意目录属性设置为”wwwroot/lib“。这个设置表示位置Bower 将在其中安装包资产。”
    • 在任何情况下,“bower-installer”都会将文件从“directory”属性复制到它自己的路径设置中。要停止将“wwwroot”用作垃圾箱,您应该更改 bower 的目录设置。
    • 是的,这很好,但我想说的是 dist/knockout.js 文件不存在。
    • 这很奇怪 - 我在我的项目中使用 KO 3.4 并且我在“dist”文件夹中有两个文件 - knockout.js 和 knockout.debug.js ;) 我希望你会信任我没有截图。
    猜你喜欢
    • 1970-01-01
    • 2011-05-19
    • 1970-01-01
    • 1970-01-01
    • 2017-02-09
    • 1970-01-01
    • 2019-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多