我已经在我的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"
},...
}
答案 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);
}