这是我的设置:如何使用TypeScript在浏览器中使用NPM包?
的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'.
使用TypeScript时,将NPM包装加载到项目中的最标准/推荐的方式是什么?
注意
node_modules
是访问和文件node_modules/lodash/index.js
被送达正确。- 我试图不使用
Bower
,因为我觉得应该用NPM
来代替。 - 我正在使用
SystemJS
,我相信它是一个通用模块加载程序。
对于初学者来说,即使您的node_modules目录是可访问的,我通常会使用一些独立的客户端软件包,像Bower(它本身就是一个NPM软件包)。其次,您可能需要在浏览器中的其他脚本之前加载像commonjs或requirejs这样的依赖管理器,而导入支持直接构建到Node中。 – Katana314
Hi @ Katana314感谢您的评论。在“注释”下查看我的答案。 – Pablo
“*我发现它应该用NPM完成。” - “你能否进一步解释这个推理?我应该注意到,我的node_modules目录往往包含很多文件,这些文件绝对没有意义的被公开地提供,并且对您而言也是如此。 – Katana314