首页 > 解决方案 > 如何在 Sails.js 中使用 import Leaflet?

问题描述

超级基本问题:我想在 Sails.js 项目中安装和使用 Leaflet 模块。首先,我将它安装在 using 中npm i leaflet --save。这成功地更新了 package.json 文件中的依赖项列表。

为了使用它,我在页面脚本中编写了以下代码:

mounted: async function() {
  //…
  console.log('hello world!!!!');
  var leaflet = require("leaflet");
},

Sails.js 抱怨:未捕获(承诺)ReferenceError:未定义要求。

为什么?如果我需要先创建一个钩子,它需要包含什么?

标签: npmsails.js

解决方案


通过包管理器 npm 安装的模块将用于事物的服务器端(控制器、动作等),而不是在浏览器中。

您可以使用 Browserify 或 Webpack 等解决方案,但在这种情况下,最好从网站下载 Leaflet并将文件夹添加到 assets/dependencies 下。

最后,您可以将 JavaScript Leaflet 文件导入 layout.ejs(在 views/layouts 文件夹内):

<% /* Auto-injected «script» tags: */ %>
<!--SCRIPTS-->
// ...
<script src="/dependencies/leaflet/leaflet.css"></script>

对于 CSS:

<% /* Auto-injected «link» tags: */ %>
<!--STYLES-->
// ...
<link rel="stylesheet" href="/dependencies/leaflet/leaflet.css">

我猜这是最好的方法,因为 Sails.js 入门模板以相同的方式导入 Boostrap 4。


推荐阅读