-1

我是需求软件的新手。我要做的是添加一个外部库以在 DW 控制器中使用。

简而言之:如何在需求软件控制器中使用外部库作为 lodash?

4

3 回答 3

0

为了能够在需求软件脚本(例如控制器)中使用 lodash,您需要进行一些调整。作为参考,请检查下划线是如何像项目中的另一个墨盒一样被改编和使用的。下划线的用法示例如下:

const map = require('underscore/map');
...
return map(basket.productLineItems, function (productLineItem) {
   return productLineItem.getQuantity().getValue();
});
...

因此,您将需要从 lodash 源创建墨盒并将其与模块 require 方法一起使用。

于 2017-08-07T21:25:04.773 回答
0

Demandware 在后台使用 Rhino 引擎,该引擎通常与最新的库不兼容。要在 Demandware 中使用第三方库,请尝试以下步骤:

  1. 创建一个新的空白墨盒
  2. 复制粘贴库的代码
  3. 尝试使用它。如果它是一个非常简单的库,它可能开箱即用。然而,最有可能的是,您必须进行代码调整。深入了解错误日志,看看出了什么问题。
  4. 如果库有依赖项,您也需要修复这些依赖项。
于 2017-08-16T14:34:58.930 回答
0

您可以使用基于 lodash npm 节点模块版本 3.10.1 的 Cartridge_lib_lodash

这个磁带库是一个到 ES5 的 babel 转译,做了一些小的改动,以便可以用作标准的 SFRA 磁带。

它可以作为标准 SFRA 磁带安装,克隆存储库并运行 npm 脚本 uploadCartridge


$ git clone git@github.com:pikamachu/pika-cartridge-lib-lodash.git
$ cd pika-cartridge-lib-lodash
$ npm run uploadCartridge

或者可以作为节点模块依赖项添加到现有的 SFRA 墨盒项目中,使用


$ npm i cartridge_lib_lodash

Lodash 模块可以使用 require 盒作为标准 SFRA 脚本来加载。


// lodash modules can be loaded separately using
var _array = require('*/cartridge/scripts/lib/lodash/array');
var _chain = require('*/cartridge/scripts/lib/lodash/chain');
var _collection = require('*/cartridge/scripts/lib/lodash/collection');
var _date = require('*/cartridge/scripts/lib/lodash/date');
var _function = require('*/cartridge/scripts/lib/lodash/function');
var _lang = require('*/cartridge/scripts/lib/lodash/lang');
var _math = require('*/cartridge/scripts/lib/lodash/math');
var _number = require('*/cartridge/scripts/lib/lodash/number');
var _object = require('*/cartridge/scripts/lib/lodash/object');
var _string = require('*/cartridge/scripts/lib/lodash/string');
var _support = require('*/cartridge/scripts/lib/lodash/support');
var _utility = require('*/cartridge/scripts/lib/lodash/utility');

有关模块用法,请参阅lodash 文档文档。

于 2020-07-20T10:49:14.860 回答