Это моя установка:Как использовать пакеты NPM в браузере с помощью TypeScript?
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<script src="../node_modules/systemjs/dist/system.js"></script>
<script src="../node_modules/lodash/index.js"></script>
</head>
<body>
<script>
System.config({
packages: {'js': {defaultExtension: 'js'}}
});
System
.import('./js/app')
.catch(console.error.bind(console));
</script>
</body>
</html>
app.ts
import {_} from 'lodash';
export class App {};
Когда я пытаюсь transpiling машинопись в JavaScript Я получаю ошибку ниже:
error TS2307: Cannot find module 'lodash'.
Каков наиболее стандартный/рекомендуемый способ загрузки упаковки NPM в ваш проект при использовании TypeScript?
Примечание
node_modules
доступно и файлnode_modules/lodash/index.js
в настоящее время служит правильно.- Я стараюсь не использовать
Bower
, потому что я нахожу, что это должно быть сделано сNPM
. - Я использую
SystemJS
, который, я считаю, является универсальным загрузчиком модулей.
Для начала, даже если ваш каталог node_modules доступен, я думаю, что обычно отдельный набор клиентских пакетов используется через нечто вроде Bower (который сам по себе, пакет NPM). Во-вторых, вам может потребоваться загрузить менеджер зависимостей, например commonjs или requirejs, перед другими сценариями в браузере, тогда как поддержка импорта встроена прямо в узел. – Katana314
Привет @ Katana314 благодарит за ваш комментарий. См. Мой ответ в разделе «Примечания». – Pablo
"* Я нахожу, что это нужно делать с помощью NPM. *" - Можете ли вы объяснить это рассуждение дальше? Я должен отметить, что мой каталог node_modules имеет тенденцию содержать много файлов, которые абсолютно не имеют смысла публично обслуживаться, и то же самое может быть верно и для вас. – Katana314