在客户端包括节点模块“For Browser”

时间:2017-02-08 11:34:19

标签: javascript node.js internationalization

我正在尝试将i18n-for-browseri18n一起使用,但我不知道如何在客户端通过NPM在i18n-for-browser安装的服务器端包含模块一个<script>标记。我的节点服务器也在运行express。

以下是我所知道的:

  • i18n在服务器端翻译并正常工作
  • i18n和i18n-for-browser安装在服务器端,我的困境在于客户端或前端
  • browser-i18n(不同于i18n-for-browser)通过将javascript文件放在我的公共/ Javascript文件夹中并像往常一样将其链接到标签来正常工作,浏览器-i18n唯一的问题就是它没有不像i18n那样具有我需要的功能 - see my other question and answer

以下是我不知道的事情:

  • 是i18n和i18n-for-browser可以互换吗?
  • 如果Node不支持导入,为什么很多NPM模块都使用import? (Keith在评论中回答)
  • 如何在客户端使用i18n-for-browser(或i18n,如果可以互换)?

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您不能在<script>中包含任何未从您(或其他)Web服务器提供的内容。您的服务器是否使用express.static或其他方式described here来提供这些文件?那些放在你的HTML文件的同一个地方吗?如果您使用正确的网址,则可以将其与<script>标记一起使用。如果没有那么你就不能。

但是,如果它是一个受欢迎的模块,而不是像cdnjs那样可以使用CDN,那么可以很方便地为你提供很多图书馆 - 请参阅https://cdnjs.com/

当你npm install一个模块时,它所做的就是将它(及其依赖项)放在node_modules目录中。但是这个目录不太可能由您的Web服务器提供,因此您需要将该模块放在您拥有其他静态文件(如HTTP)的地方。

答案 1 :(得分:0)

您可以使用软件包official documentation提供的CDN,并可以访问<script>中的代码。您将有一个名为i18n的全局变量来进行翻译。

<script src="https://unpkg.com/i18n-for-browser?main=umd"></script>