我试图用聚合物创建一个电子应用程序。我尝试使用
导入自定义元素<link rel="import" href="src/lux-app.html">
但它没有工作。控制台说:
GET file:///D:/src/lux-app.html net::ERR_FILE_NOT_FOUND
它没有使用正确的路径。我研究并发现只有在服务器(例如localhost)上才能使用导入。有没有办法在电子或类似的东西中运行localhost?
谢谢
修改 这是文件结构
lux-app
|── bower_components
|── images
|── lib
└── artnet.js
|── lux-app.html
|── .gitignore
|── bower.json
|── ...
node_modules
└── node stuff
main.js
index.html
polymer.json
package.json
README.json
renderer.js
答案 0 :(得分:1)
导入工作没有“localhost”,正如我在"Electron Api demos"中看到的那样。在 index.html 文件中,有一些导入如下:
const CopyWebpackPlugin = require('copy-webpack-plugin').CopyWebpackPlugin;
....
const clientBundleConfig = merge(sharedConfig, {
entry: { 'main-client': './ClientApp/boot.browser.ts' },
output: { path: path.join(__dirname, clientBundleOutputDir) },
plugins: [
new webpack.CopyWebpackPlugin(
{ from: './ClientApp/assets', to: './wwwroot/dist/assets', toType : 'dir' }
),
new webpack.DllReferencePlugin({
context: __dirname,
manifest: require('./wwwroot/dist/vendor-manifest.json')
})
].concat(isDevBuild ? [
// Plugins that apply in development builds only
new webpack.SourceMapDevToolPlugin({
filename: '[file].map', // Remove this line if you prefer inline source maps
moduleFilenameTemplate: path.relative(clientBundleOutputDir, '[resourcePath]') // Point sourcemap entries to the original file locations on disk
})
] : [
// Plugins that apply in production builds only
new webpack.optimize.UglifyJsPlugin(),
new AngularCompilerPlugin({
tsConfigPath: './tsconfig.json',
entryModule: path.join(__dirname, 'ClientApp/app/app.browser.module#AppModule'),
exclude: ['./**/*.server.ts']
})
])
});
所以我认为您的问题是主渲染器(main.js)中的路径变量无法正常工作,或者如果您尚未声明该变量,则需要使用{ {1}}并使用电子Api演示中 main.js 文件中的路径。
(我不是电子专家,但我想我可以让你找到解决电子api回购文件内部解决方案的方法)