Загрузка узловых модулей с помощью RequireJS .net core / Razor - PullRequest
0 голосов
/ 07 марта 2019

Я знаю, что можно загружать модули узлов с помощью requirejs, и я следовал руководству на их странице, и я попробовал пару вещей, но та же ошибка возвращается!Кажется, что baseUrl изменяется, если я использую файл "r.js", который, как они говорят, необходим для этого, но когда я добавляю файл, он меняет настройку baseUrl, и независимо от того, как я расставляю приоритеты, она всегда меняется.

Есть ли способ заставить эту работу?Я хочу использовать импорт в моих файлах TS как обычно, без необходимости перемещать исходные файлы в локальную папку src, чтобы requirejs мог найти библиотеку.

_Layout.cshtml

<script src="~/js/_require.config.js"></script>
<script>require.baseUrl = '@Url.Content("~/js/")'</script>
<script src="~/lib/require.js"></script>
@RenderSection("Scripts", required: false)

_require_config.js

var require = {
	paths: {
		"jquery": "../../lib/jquery/dist/jquery",
		"bootstrap": "../../lib/bootstrap/dist/js/bootstrap",
		"knockout": "../../lib/knockout-3.4.2",
		"komapping": "../../lib/knockout.mapping-latest.debug",
		"knockout.validation": 'knockout.validation.min',
		"datatables": "../../adminLTE/plugins/datatables/jquery.dataTables",
		"select2": "select2.min",
		"lodash": "lodash.min",
		"sweetalert2": "sweetalert2.min",
		"tslib": "../../lib/tslib/tslib"
	},
	deps: ['knockout', 'komapping'],
	callback: function (ko, mapping) {
		ko.mapping = mapping;
	}
};

if (typeof exports === 'object') {
	exports.config = require;
}

TSconfig

{
	"compilerOptions": {
		"module": "amd",
		"moduleResolution": "node",
		"noImplicitAny": false,
		"noFallthroughCasesInSwitch": true,
		"noImplicitThis": true,
		"noUnusedLocals": false,
		"experimentalDecorators": true,
		"noUnusedParameters": false,
		"importHelpers": true,
		"outDir": "./wwwroot/js",
		"lib": [
			"dom",
			"es5",
			"es2015.promise",
			"es2018.promise",
			"esnext.asynciterable"
		],
		"typeRoots": [
			"./node_modules/@types"
		]
	},
	"include": [
		"./wwwroot/ts/**/*",
		"./wwwroot/lib/tslib/**/*",
		"./custom_types/**/*"
	],
	"exclude": [
		"./node_modules",
		"./bower_components"
	]
}

Скомпилировано JS

define(["require", "exports", "knockout", "../init", "../Shared/generic-sweetalert", "../Shared/default-ajax-requests", "../Models/models", "../Shared/loader", "class-validator"], function (require, exports, ko, init_1, generic_sweetalert_1, default_ajax_requests_1, models_1, loader_1, class_validator_1) {
    "use strict";
    exports.__esModule = true;
    function init(pingUrl, pingUrlForEquimentHtml, pingUrlForEquimentJson) {
        init_1.onready(function () {
            var dataGrab = default_ajax_requests_1.DefaultAjaxGetRequest(pingUrl);
            dataGrab.then(function (val) {
                if (val.code == models_1.StatusCodes.Ok) {
                    loader_1.ToggleLoadingAnimation();
                    ko.applyBindings(new editOrder(val.data));
                }
                else {
                    generic_sweetalert_1.BackendSweetAlert(val.data.responseJSON.sweetAlert);
                }
            });
        });
    }
    exports.init = init;
    var editOrder = /** @class */ (function () {
        function editOrder(serverModel) {
            var _this = this;
            this.model = ko.mapping.fromJS(serverModel);
            this.localUrl = document.URL;
            this.saveOrder = function () {
                class_validator_1.validate(_this.model.Data).then(function (errors) {
                    console.log(errors);
                });
            };
        }
        return editOrder;
    }());
});
...