javascript - 如何在前端和后端之间共享 TypeScript/JavaScript?

标签 javascript angularjs node.js typescript gulp

我有一个 Node.js/w Angular.js 项目的文件夹结构,其中包含一些文件(来自项目根目录):

frontend
  frontend-file1.ts
  frontend-file2.ts

backend
  backend-file1.ts
  backend-file2.ts

我使用 TypeScript 编译器和许多其他 gulp 插件将其编译到 build 文件夹中(注意 frontend 文件是如何获取的放入public):

build
  backend-file1.js
  backend-file2.js

  public
    frontend-file1.js
    frontend-file2.js

在源文件夹中,我使用 ES6/TypeScript import 语句导入文件。

示例:backend-file1.ts

import './backend-file2';

情况

我已经编写了一些应由后端和前端使用的自定义实用程序函数。我不想在两个文件夹中重复相同的功能,因为这很容易出错并且是双重工作。

我考虑过在项目根目录的 frontendbackend 文件夹中创建一个 shared 文件夹,但我无法导入文件在浏览器中,比 index.html 文件更进一步,该文件位于 frontend 文件夹中。

问题

我怎样才能编写一次 TypeScript 文件并能够在 frontendbackend 文件夹中导入这个文件?

最佳答案

我会像这样构造代码:

- src/
   - server/
   - client/
   - shared/

您可以将所有共享库放入 shared 目录,然后从您的服务器或客户端源文件导入/需要它们:

import '../shared/library'

关于javascript - 如何在前端和后端之间共享 TypeScript/JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36535685/

相关文章:

javascript - 使用 Node.js 的 mongodb 驱动程序返回嵌套数组中的第一个元素

javascript - 在 Service worker 中使用 setInterval

javascript - 使用 jQuery 调整窗口大小时更改占位符文本

javascript - 从 Firefox 扩展检测 JS API 调用

javascript - 如何以 Angular 将错误添加到表单验证错误列表中?

javascript - 如何识别 HTML 元素是否具有 AngularJS 行为?

node.js - 如何定义 GruntJS 服务的内容?

javascript - 我想禁用表最后一行之前所有行的删除按钮 - JavaScript

javascript - AngularJS ng-true-value 不适用于 v1.6.1

javascript - 如何使用 ajax.get 调用从 node.js 服务器获取响应