Import deno从deno.land/x导入lodash
我还没有找到在Deno程序中导入Lodash的正确语法/URL。 我试过这个:Import deno从deno.land/x导入lodash,import,lodash,deno,Import,Lodash,Deno,我还没有找到在Deno程序中导入Lodash的正确语法/URL。 我试过这个: import\uufrom'https://deno.land/x/lodash@4.17.19/lodash.js'; 这将产生错误“uncaughtsyntaxerror:请求的模块”https://deno.land/x/lodash@4.17.19/lodash.js“未提供名为“default”的导出” 然后我试了一下: import*作为lodash from'https://deno.land/x/l
import\uufrom'https://deno.land/x/lodash@4.17.19/lodash.js';
这将产生错误“uncaughtsyntaxerror:请求的模块”https://deno.land/x/lodash@4.17.19/lodash.js“未提供名为“default”的导出”
然后我试了一下:
import*作为lodash from'https://deno.land/x/lodash@4.17.19/lodash.js';
这似乎给了我一个空的模块对象
我想看一个从Deno程序访问Lodash任何函数的示例。因此,经过一个小实验,我找到了两种方法将
Lodash
导入Deno
环境
1.将deno视为普通浏览器环境
导入”https://deno.land/x/lodash@4.17.19/dist/lodash.js”;
//现在``被导入到全局变量中,该变量在deno中为`self'`
常数u=(自身与任何事物一样);
console.log(u.chunk([1,2,3,2]);//-->[ [ 1, 2 ], [ 3 ] ]
2.deno中的伪节点功能
在deno std中,有一个节点模块:
该模块旨在为NodeJS标准库提供一个兼容层
从导入{createRequire}”https://deno.land/std@0.86.0/node/module.ts”;
const require=createRequire(import.meta.url);
//似乎不知道如何从web导入文件,
//因此,您必须将其下载到本地文件系统中。
const=require(“./lodash.js”);
console.log(u.chunk([1,2,3,2]);//-->[ [ 1, 2 ], [ 3 ] ]
添加类型信息
这就是我发现的,有点麻烦
xxx
到xxx.d.ts
的每次导入。例如:在文件common/common.d.ts
中://之前
导入=必需(“../index”);
声明模块“./索引”{
/* ... */
//之后
从“./index.d.ts”导入;
声明模块“./index.d.ts”{
/* ... */
从“/types/Lodash/index.d.ts”导入类型Lodash;
常量:Lodash的类型=(与任何类型一样);
//现在uu已键入
下面是
lodash
源文件中的一些片段,我认为与导入相关
//检测您当前所在的环境:
/**从Node.js检测自由变量'global'*/
var freeGlobal=typeof global=='object'&&global&&global.object===object&&global;
/**检测自由变量“self”*/
var freeSelf=typeof self=='object'&&self&&self.object===object&&self;
/**用作全局对象的引用*/
var root=freeGlobal | | freeSelf | |函数('returnthis')();
/**检测自由变量“导出”*/
var freeExports=typeof exports=='object'&&exports&&&exports.nodeType&&exports;
/**检测自由变量'module'*/
var freeModule=freeExports&&typeof module=='object'&&module&&module&&module.nodeType&&module;
/**检测流行的CommonJS扩展“module.exports”*/
var moduleExports=freeModule&&freeModule.exports===freeExports;
/**从Node.js检测自由变量'process'*/
var freeProcess=moduleExports&&freeGlobal.process;
// ...
//以及“lodash”如何导出其功能:
//一些AMD构建优化器,如r.js,检查以下条件模式:
if(typeof define=='function'&&typeof define.amd=='object'&&define.amd){
//在全局对象上公开Lodash,以防止在启用Lodash时出错
//在AMD加载程序存在的情况下由脚本标记加载。
//看http://requirejs.org/docs/errors.html#mismatch 更多细节。
//使用“\.noConflict”从全局对象中删除Lodash。
根;
//定义为匿名模块,以便通过路径映射
//引用为“下划线”模块。
定义(函数(){
返回;;
});
}
//在“define”之后检查“exports”,以防生成优化器添加它。
else if(自由模块){
//导出Node.js。
(freeModule.exports=uu;);
//导出CommonJS支持。
自由出口;
}
否则{
//导出到全局对象。
根;
}
// ...
在es模块中使用版本。更多相同的问题请参见此处。
import\uufrom'https://deno.land/x/lodash@4.17.15-es/lodash.js';
console.log(41;;
非常简单的解决方案:它为您完成了所有的样板文件,并且没有添加额外的代码:)与Deno一起使用更容易