61 lines
2.2 KiB
JavaScript
61 lines
2.2 KiB
JavaScript
// 'index.' character codes
|
|
if (Editor.remote.App.version === "2.4.5") return;
|
|
const pluginDistPath = Editor.url(global.pluginDistPath);
|
|
const Module = require.main.constructor;
|
|
const NativeModule = process.NativeModule;
|
|
const pluginNodeModulesPath = global.pluginNodeModulesPath;
|
|
// const panelId
|
|
if (!process.mainModule.paths.includes(pluginNodeModulesPath)) {
|
|
process.mainModule.paths.push(pluginNodeModulesPath)
|
|
}
|
|
Module._resolveFilename = function(request, parent, isMain, options) {
|
|
if (NativeModule.canBeRequiredByUsers(request)) {
|
|
return request;
|
|
}
|
|
|
|
var paths;
|
|
|
|
if (typeof options === 'object' && options !== null &&
|
|
Array.isArray(options.paths)) {
|
|
const fakeParent = new Module('', null);
|
|
|
|
paths = [];
|
|
|
|
for (var i = 0; i < options.paths.length; i++) {
|
|
const path = options.paths[i];
|
|
fakeParent.paths = Module._nodeModulePaths(path);
|
|
const lookupPaths = Module._resolveLookupPaths(request, fakeParent, true);
|
|
|
|
for (var j = 0; j < lookupPaths.length; j++) {
|
|
if (!paths.includes(lookupPaths[j]))
|
|
paths.push(lookupPaths[j]);
|
|
}
|
|
}
|
|
} else {
|
|
paths = Module._resolveLookupPaths(request, parent, true);
|
|
}
|
|
|
|
// Look up the filename first, since that's the cache key.
|
|
let filename = Module._findPath(request, paths, isMain);
|
|
if (!filename) {
|
|
//找不到,尝试去插件目录找啊---------
|
|
filename = Module._findPath(request, [pluginDistPath], isMain);
|
|
if (!filename) {
|
|
const requireStack = [];
|
|
for (var cursor = parent; cursor; cursor = cursor.parent) {
|
|
requireStack.push(cursor.filename || cursor.id);
|
|
}
|
|
let message = `Cannot find module '${request}'`;
|
|
if (requireStack.length > 0) {
|
|
message = message + '\nRequire stack:\n- ' + requireStack.join('\n- ');
|
|
}
|
|
// eslint-disable-next-line no-restricted-syntax
|
|
var err = new Error(message);
|
|
err.code = 'MODULE_NOT_FOUND';
|
|
err.requireStack = requireStack;
|
|
throw err;
|
|
}
|
|
|
|
}
|
|
return filename;
|
|
}; |