Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 包括节点模块“;“用于浏览器”;在客户端_Javascript_Node.js_Internationalization - Fatal编程技术网

Javascript 包括节点模块“;“用于浏览器”;在客户端

Javascript 包括节点模块“;“用于浏览器”;在客户端,javascript,node.js,internationalization,Javascript,Node.js,Internationalization,我正在尝试与一起使用,但我不知道如何在客户端的标记中包含用于通过NPM安装的服务器端浏览器的模块i18n。我的节点服务器也在运行express 以下是我所知道的: i18n可以在服务器端进行翻译并正常工作 i18n和i18n for browser安装在服务器端,我的难题在于客户端还是前端 (不同于i18n的浏览器)将javascript文件放在我的public/javascript文件夹中,并像往常一样用标记链接它,这样做很好,browser-i18n的唯一问题是它不像i18n那样具有我需要

我正在尝试与一起使用,但我不知道如何在客户端的
标记中包含用于通过NPM安装的服务器端浏览器的模块i18n。我的节点服务器也在运行express

以下是我所知道的:

  • i18n可以在服务器端进行翻译并正常工作
  • i18n和i18n for browser安装在服务器端,我的难题在于客户端还是前端
  • (不同于i18n的浏览器)将javascript文件放在我的public/javascript文件夹中,并像往常一样用标记链接它,这样做很好,browser-i18n的唯一问题是它不像i18n那样具有我需要的功能-
以下是我不知道的:

  • i18n和i18n浏览器是否可以互换
  • 如果Node还不支持导入,为什么很多NPM模块会使用导入(基思在评论中回答)
  • 如何在客户端将i18n用于浏览器(或i18n,如果可以互换的话)

有什么想法吗?

您不能在
中包含任何未从您(或其他)web服务器提供的内容。您的服务器是否使用
express.static
或其他方式提供这些文件?这些文件是否放在HTML文件所在的位置?如果使用正确的URL,则可以将其与
标记一起使用。如果不是,那么你就不能

但是,如果它是一个流行的模块,那么您可能可以使用像cdnjs这样的CDN,这样就可以方便地为您提供许多库-参见


当您
npm安装
一个模块时,它所做的一切就是将其(及其依赖项)放入
node\u modules
目录中。但是此目录不太可能由您的web服务器提供服务,因此您需要将该模块放在具有其他静态文件(如HTTP)的位置。

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


要在客户端javascript中包含NPM模块,您需要一个像Browserfy或Webpack等的打包程序。即使是专门为浏览器开发的模块还是仅为浏览器开发的模块?奇怪的是,他们没有在模块中实现方法…谢谢!这让人很困惑。我了解如何使用express.static,但我的问题是关于浏览器的i18n。首先,在页面上,它说要使用“导入”,这是Node不支持的(或者只是给了我一个错误)。我只想在客户端使用i18n,但我完全不知道如何做到这一点。我的jade模板呈现和翻译得很好,问题在于标记中字符串的翻译,这些字符串被动态添加到DOM中。如果它说的是使用导入,那么很有可能你的浏览器使用的是像webpack这样的包管理器,这也得到了ESNext编译器对模块加载的支持,。加载npm内容的另一个选项是使用类似于jspm.io的东西,在某些方面,这只是另一个包管理器,因为在HTTP2更广泛使用之前,您仍然希望对其进行打包。Ok-so import=包管理器。我得到了这一部分,但我仍然对在客户端设置它的实际过程感到困惑。我已经更新了问题,以澄清我现在的处境。。。