#typescript #knockout.js #npm
#typescript #knockout.js #npm
Вопрос:
В настоящее время я слежу за официальной демонстрацией ts-ko. Когда я помещаю прямую ссылку на Ko:
/// <reference path="./node_modules/@types/knockout/index.d.ts" />
Ошибок нет. Но когда ссылка добавляется следующим образом:
import * as ko from "knockout";
выдается ошибка:
Неперехваченная ошибка ссылки: требование не определено
Демонстрация Typescript утверждает, что:
Нам нужно захватить сам Knockout, а также что-то, называемое RequireJS .
Как правильно определить RequireJS? Почему требуется использовать requirejs для случая «импорта»?
package.json
"dependencies": {
"jquery": "3.1.1",
"@types/jquery": "2.0.33",
"knockout": "3.4.0",
"@types/knockout": "1.1.5"
}
Ответ №1:
С домашней страницы RequireJS. RequireJS — это загрузчик файлов и модулей JavaScript.
Как правильно определить RequireJS?
Вы можете просто ссылаться на свой RequireJS из тега скрипта.
<script src="scripts/require.js" type="text/javascript"></script>
и определите свою конфигурацию RequireJS.
require.config({
baseUrl: 'app',
paths: {
text: "../scripts/text" //Path to text.js, you will use this to load html that will be used in your ko components,
widgets: "widgets",
app: "."
}
});
Затем вы можете зарегистрировать свой компонент точно так же, как этот.
ko.components.register(name, {
viewModel: { require: path },
template: { require: 'text!' path '.html' }
});
Почему требуется использовать requirejs для случая «импорта»?
Для асинхронной загрузки ваших компонентов ko вам нужен загрузчик модулей, такой как RequireJS. Смотрите эту документацию.
Комментарии:
1. Учебное пособие по requirejs: youtube.com/watch?v=eRqsZqLyYaU Структура папок для require js: github.com/volojs/create-template