未能解析Electron v.17应用程序中聚合物3的模块

k5hmc34c  于 2022-12-31  发布在  Electron
关注(0)|答案(1)|浏览(218)

我从FluidNext获得了electron-quick-startelectron-polymer,用于我的聚合物3应用程序。
当我尝试将我的webcomponents导入到项目中时,我收到了以下错误:Uncaught TypeError: Failed to resolve module specifier "@polymer/polymer/polymer-element.js". Relative references must start with either "/", "./", or "../".为了解决这个问题,我使用了../node_modules/my-folder/my-component.js,但这只在我导入一个只引用了默认文件夹的组件时才起作用。

Example: 

    import {
    html,
    PolymerElement
} from '../node_modules/@polymer/polymer/polymer-element.js';

这对我很有效,这个组件显示在我的电子应用程序中,但是我有很多其他组件使用其他参考,如下所示。

import {
    html,
    PolymerElement
} from '../node_modules/@polymer/polymer/polymer-element.js';

// import { sharedStyles } from './shared-styles.js';

import '../node_modules/@polymer/paper-input/paper-input.js';
import '../node_modules/@polymer/iron-icon/iron-icon.js';
import '../node_modules/@polymer/iron-icons/iron-icons.js';

当我导入这个组件时,我得到了这个错误,类似于第一个:Uncaught TypeError: Failed to resolve module specifier "@polymer/polymer/polymer-legacy.js". Relative references must start with either "/", "./", or "../".
这就是我现在的问题,每个新组件我都需要在默认聚合物导入之前添加../node_modules,当这个组件内部有其他导入时,我得到了其他引用错误。
我该怎么解决这个问题?

uinbv5nw

uinbv5nw1#

我也遇到了这个问题。我有一个Flask应用程序,我想在我的模板中嵌入web组件。我用下面的方法解决了这个问题。我已经写了下面的python文件,并在启动文件中调用它。现在一切都正常了。

# We need to go to node_modules\ and add a / before the all imports paths that don't start with ~ . \ or /

import os
import re

def fix_relative_references():
    path_to_node_modules = os.path.join(os.path.dirname(os.path.abspath(__file__)), '../node_modules')

    for root, dirs, files in os.walk(path_to_node_modules):
        for file in files:
            if file.endswith('.js'):
                file_path = os.path.join(root, file)
                with open(file_path, 'r') as f:
                    file_content = f.read()
                    file_content = re.sub(r"from '([^/\.~])", r"from '/\1", file_content)
                    file_content = re.sub(r"from \"([^/\.~])", r"from \"/\1", file_content)
                    file_content = re.sub(r"import '([^/\.~])", r"import '/\1", file_content)
                    file_content = re.sub(r"import \"([^/\.~])", r"import \"/\1", file_content)
                    file_content = re.sub(r"require\('([^/\.~])", r"require('/\1", file_content)
                    file_content = re.sub(r"require\(\"([^/\.~])", r"require(\"/\1", file_content)
                with open(file_path, 'w') as f:
                    f.write(file_content)

相关问题