有没有办法在node.js中使用Lodash而不需要安装任何npm包?

问题描述 投票:0回答:1

我尝试了太多的事情,但都失败了:

const _ = require('lodash');
import _ from 'lodash';
import 'lodash';
const _ = require('https://cdn.jsdelivr.net/npm/[email protected]/lodash.min.js');
import _ from 'https://cdn.jsdelivr.net/npm/[email protected]/lodash.min.js';
import 'https://cdn.jsdelivr.net/npm/[email protected]/lodash.min.js';

答案肯定很简单,但我找了半个小时也没找到。我做错了什么?

node.js import lodash importerror
1个回答
0
投票

Lodash 提供了 ESM 构建,可通过 CDN 获取:https://www.jsdelivr.com/package/npm/lodash-es。您可以动态导入此模块,但您必须使用自定义 HTTPS 加载器,因为 Node.js(自版本 22 起)不支持开箱即用的从 HTTPS 导入

// https-loader.js export const load = async (url, context, nextLoad) => { if (url.startsWith("https://")) { const res = await fetch(url); return { format: "module", shortCircuit: true, source: await res.text(), }; } return nextLoad(url); };
// lodash-test.js
import _ from "https://cdn.jsdelivr.net/npm/[email protected]/lodash.min.js";

console.log(_.defaults({ a: 1 }, { a: 3, b: 2 }));
然后执行:

$ node --import 'data:text/javascript,import { register } from "node:module"; import { pathToFileURL } from "node:url"; register(pathToFileURL("./https-loader.js"));' ./lodash-test.js { a: 1, b: 2 }
如果您出于某种原因想要在 Node.js 中使用 HTTPS 导入,请务必

研究安全隐患

© www.soinside.com 2019 - 2025. All rights reserved.