【发布时间】:2017-01-03 03:13:16
【问题描述】:
有一个简单的 Typescript 项目,我使用 Gulp 从我的 TS 文件构建单个 JS 文件(我这样做是因为我有多个 HTML 文件要保持独立)。
var tsResult = gulp.src('./src/ts/**/*.ts')
.pipe(ts(tsProject));
return merge([ // Merge the two output streams, so this task is finished when the IO of both operations are done.
tsResult.dts.pipe(gulp.dest('release/definitions')),
tsResult.js.pipe(gulp.dest('release/js'))
]);
所以在我的 HTML 中我会有类似的东西 -
<script src="./js/myTSfileTranspiledToJS.js"></script>
假设 TS 文件引用了第三方代码库,例如 jQuery。代码可以正常构建和部署,没有错误,但是当我在包含 jQuery 的 TS/JS 中调用一个方法时,它会失败。 这是因为在运行时它没有 jQuery 代码。
现在我可以使用脚本标签包含 jQuery 代码 -
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
但我宁愿不这样做。有没有办法将第 3 方代码包含/捆绑到转译的 JS 文件中。
编辑
要明确 - 我希望有一个 Typescript 项目,它可以生成一些 JS 文件,并且这些 JS 文件所依赖的任何东西都应该与它们捆绑在一起,而无需单独加载它们。 因此,如果 A.js 需要 B.js,那么我希望构建能够看到这一点并将 B.js 与 A.js 一起包含,以节省我将 B.js 添加到某个 html 文件的时间。 正如下面的答案所建议的那样 - Broswerify,但我还没有在我的设置中弄清楚这一点。
【问题讨论】:
-
如果投反对票 - 请说明理由。至少看看我是否可以在需要时使 Q 更清晰。
标签: javascript typescript gulp browserify typescript1.8