Bor*_*rja 6 javascript module node.js npm npm-install
我是新手npm module,node.js所以对我来说真的很难。
我有一个js代码很多点,对于每个点,我都想得到最近的城市。
为此,在另一个问题(使用大数组进行反向地理编码是最快的方法?-javascript和性能)中,一个用户建议我使用两个npm模块,
const kdbush = require('kdbush');
const geokdbush = require('geokdbush');
// I've stored the data points as objects to make the values unambiguous
const cities = [
{ name: "Abano Terme (PD)", latitude: 45.3594, longitude: 11.7894 },
{ name: "Abbadia Cerreto (LO)", latitude: 45.3122, longitude: 9.5928 },
{ name: "Abbadia Lariana (LC)", latitude: 45.8992, longitude: 9.3336 },
{ name: "Abbadia San Salvatore (SI)", latitude: 42.8800, longitude: 11.6775 },
{ name: "Abbasanta (OR)", latitude: 40.1250, longitude: 8.8200 }
];
// Create the index over city data ONCE
const index = kdbush(cities, ({ longitude }) => longitude, ({ latitude }) => latitude);
// Get the nearest neighbour in a radius of 50km for a point with latitude 43.7051 and longitude 11.4363
const nearest = geokdbush.around(index, 11.4363, 43.7051, 1, 50);
Run Code Online (Sandbox Code Playgroud)
问题是这是我第一次这样做。除了我是意大利语,英语说得不太好,在意大利语Google中,没有什么:(
您能告诉我如何使用这些模块吗?
我必须Node.js在服务器上安装吗?
是否可以在本地PC上使用模块?
Wal*_*ung 45
browserify是正确的方向,但我花了相当多的精力来制定实际的解决方案。我为此总结了一个简短的博客,这里有一些快速回顾:
假设您想在 HTML 中使用emailjs-mime-parser和buffernpm 库。
npm install -g browserify
npm install emailjs-mime-parser
npm install buffer
Run Code Online (Sandbox Code Playgroud)
main.js的包装器:var parse = require('emailjs-mime-parser').default
var Buffer = require('buffer').Buffer
global.window.parseEmail = parse
global.window.Buffer = Buffer
Run Code Online (Sandbox Code Playgroud)
browserifybrowserify main.js -o bundle.js
Run Code Online (Sandbox Code Playgroud)
bundle.js在 HTML 文件中使用。<html>
<head>
<script src='bundle.js'></script>
<script>
console.log(window.parseEmail);
console.log(window.Buffer);
</script>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
Kev*_*nTD 15
如果您的情况是 100% 前端,不依赖于某些服务器,您可以使用 ES Modules 语法,并结合使用https://www.skypack.dev/将 Common JS 中的模块转换为 ES Modules 。
使用标签type="module"内的属性script才能正常工作非常重要,该服务也在本地工作
<script type="module">
// Use 'https://cdn.skypack.dev/' + 'npm package name' + '@version its optional'
import random from 'https://cdn.skypack.dev/canvas-sketch-util@1.10.0/random'
console.log('A random number: ', random.range(1,10))
</script>Run Code Online (Sandbox Code Playgroud)
在很多情况下,https://unpkg.com/无法处理https://www.skypack.dev/可以处理的情况,因此我建议在前端使用它
我在这里写了一个稍微完整的答案: How can I use a CommonJS module on JSFiddle?
Net*_*964 12
您可以使用unpkg.com从 NPM 包中提取内容。例如,如果您需要获取 Polymer 纸按钮 Web 组件,您可以指向:https : //unpkg.com/@polymer/paper-button@3.0.1
是的,您可以直接在浏览器上使用npm模块。
Browserify是一个很好的选择。
直接从他们的页面上获取:
浏览器没有定义require方法,但是Node.js有。使用Browserify可以编写使用require的代码,就像在Node中使用它一样。
现在您还有其他问题:
我必须在服务器上安装Node.js吗?
是。但是,您只需要节点来安装browserify并将您的javascript捆绑到一个文件中,即可直接将其包含在html中。因此,一旦有了捆绑的文件,就可以在没有节点的任何地方提供它。
是否可以在本地PC上使用模块?
是! 您可以在本地PC上执行几乎所有操作。例如,您可以将其用作开发用途的服务器,并在其中运行node.js服务器。
| 归档时间: |
|
| 查看次数: |
5329 次 |
| 最近记录: |