将Jimp导入Aurelia

时间:2016-05-02 17:46:48

标签: aurelia

我已经在我的aurelia应用程序中通过jspm安装了Jimp而没有任何问题。在我的viewModel / class中我导入了Jimp。当我运行gulp watch并检查浏览器控制台时,我收到以下错误:

  

GET //localhost:9000/jspm_packages/npm/util@0.10.3/ 404(未找到)

我认为uitl是来自jimp的依赖,但为什么没找到?

我的config.js:

    System.config({
      defaultJSExtensions: true,
      transpiler: "babel",
      babelOptions: {
        "optional": [
          "es7.decorators",
          "es7.classProperties"
        ]
      },
      paths: {
        "*": "dist/*",
        "github:*": "jspm_packages/github/*",
        "npm:*": "jspm_packages/npm/*"
      }, map {...
"github:jspm/nodelibs-util@0.1.0": {
      "util": "npm:util@0.10.3"
    },....
 "npm:assert@1.3.0": {
      "util": "npm:util@0.10.3"
    },...
  "npm:util@0.10.3": {
      "inherits": "npm:inherits@2.0.1",
      "process": "github:jspm/nodelibs-process@0.1.2"
    },...
}

2 个答案:

答案 0 :(得分:1)

快速解决方案是导入完全最小化的库:

import 'jimp/browser/lib/jimp.min';

答案 1 :(得分:1)

这是一场噩梦,试图包括' jimp'使用Typescript

进入Auralia的库

首先尝试在aurelia.json中设置jimp库(使用aurelia cli) 就像Crabulki指出在"依赖关系"中使用jimp浏览器库一样标签

{ "name": "jimp", "path": "../node_modules/jimp/browser", "main": "lib/jimp.js" }

然后做打字安装" jimp" (如果使用打字稿)

在你的打字稿代码"从* jimp"中导入*作为Jimp;

它编译运行但是在测试时,浏览器显示有关import jimp.js库的错误: 因此,尽量采用尽可能少的解决方案:

在aurelia.json中,加入' jimp.min.js'图书馆的前置'像这样:

"prepend": [ "another library to include when browser load1...", "another library to include when browser load2...", "node_modules/jimp/browser/lib/jimp.js", ]

在不使用typescript导入定义的打字稿代码中 (因为aurealia必需的捆绑包不适用于' jimp')

var url = "https://upload.wikimedia.org/wikipedia/commons/0/01/Bot-Test.jpg";

    let Jimp = window['Jimp']; // This the trick to access the global library that does not fit into Aurelia require module

    Jimp.read(url).then(function(image) {
        image.greyscale().getBuffer(Jimp.MIME_JPEG, onBuffer);
    }).catch(function(err) {
        console.error(err);
    })

    function onBuffer(err, buffer) {
        if (err) throw err;
        console.log(buffer);
    }

let Jimp = window['Jimp']; // This the trick to access the global library that does not fit into Aurelia require module Jimp.read(url).then(function(image) { image.greyscale().getBuffer(Jimp.MIME_JPEG, onBuffer); }).catch(function(err) { console.error(err); }) function onBuffer(err, buffer) { if (err) throw err; console.log(buffer); }