Typescript模块,需要外部node_modules
Typescript module, require external node_modules
我需要在一个简单的typescript文件中使用一个简单的node_module,但是似乎编译器不想得到它。
这是我的简单ts文件:
import glob = require('glob');
console.log(glob);
我得到了这个错误:
[13:51:11] Compiling TypeScript files using tsc version 1.5.0
[13:51:12] [tsc] > F:/SkeletonProject/boot/ts/Boot.ts(4,23): error TS2307: Cannot find external module 'glob'.
[13:51:12] Failed to compile TypeScript: Error: tsc command has exited with code:2
events.js:72
throw er; // Unhandled 'error' event
^
Error: Failed to compile: tsc command has exited with code:2
npm ERR! skeleton-typescript-name@0.0.1 start: `node compile && node ./boot/js/Boot.js`
npm ERR! Exit status 8
npm ERR!
npm ERR! Failed at the skeleton-typescript-name@0.0.1 start script.
然而,当我在同一个脚本中使用一个简单的声明时,它工作了:
var x = 0;
console.log(x); // prints 0 after typescript compilation
在这种情况下我做错了什么?
编辑:我的gulp文件:
var gulp = require('gulp');
var typescript = require('gulp-tsc');
gulp.task('compileApp', ['compileBoot'], function () {
return gulp.src(['app/src/**/*.ts'])
.pipe(typescript())
.pipe(gulp.dest('app/dist/'))
});
gulp.task('compileBoot', function () {
return gulp.src(['boot/ts/*.ts'])
.pipe(typescript({
module:'commonjs'
}))
.pipe(gulp.dest('boot/js/'))
});
gulp.start('compileApp');
Thanks for advance
Thanks for advance
您使用的语法是正确的:
import glob = require('glob');
但是错误:Cannot find external module 'glob'
指出你正在使用一个特殊的情况。
默认情况下,编译器正在查找glob.ts
,但在您的情况下,您使用的是节点模块,而不是您编写的模块。因此,glob
模块需要特殊处理…
如果glob
是一个纯JavaScript模块,您可以添加一个名为glob.d.ts
的文件,其中包含描述该模块的类型信息。
glob.d.ts
declare module "glob" {
export class Example {
doIt(): string;
}
}
app.ts
import glob = require('glob');
var x = new glob.Example();
一些Node模块已经在包中包含了.d.ts
,在其他情况下,你可以从Definitely Typed中获取它。
这是你的代码的错误
import glob = require('glob');
因为在node.js中import不是一个保留关键字。如果在应用程序中需要任何模块,只需使用语句
来要求它 var glob = require('glob');
完成后可以使用
console.log(glob);
打印glob的值。
相关文章:
- Node.js v6.2.0类扩展不是函数错误
- 如何使用 node.js 比较两个 json 数组
- Node.js's Buffer.writeFloatBE in Javascript
- node.js:setInterval()正在跳过调用
- 如何处理node.js节点mongodb中的连接和查询队列
- Node.js正在更改应用程序以使用集群模块
- 如何使用Node.js最有效地解析网页
- 在openshift node js应用程序中获取请求
- 正在删除node.js中已验证的网站
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- 在索引.html和应用.js [node.js] 之间共享变量
- Node.js中的JavaScript原型对象效率
- 如何在构建node-webkit应用程序后获取外部资源
- node.js请求数据事件未在CORS ajax调用中触发
- 使用node.js制作网站
- 使用Angular和Node上传文件
- 使用node.js服务器中的evernote api获取note内容
- 有没有任何方法可以使用node-js从不同的机器打开浏览器
- node-webkit-从父窗口捕获iframe鼠标事件
- 使用CI和CodeDeploy对node.js应用程序进行连续部署