webpack无法将dependencies里的module完全打包
我在使用Electron
编写一个menubar的插件。在打包的时候,无法将menubar
这个module打包进build.js
里。以下是我的./app/package.json
文件
{
"name": "Moki",
"version": "0.0.0",
"description": "An electron-vue project",
"main": "electron.js",
"dependencies": {
"vue": "^2.0.1",
"vue-electron": "^1.0.0",
"vue-resource": "^1.0.3",
"vue-router": "^2.0.0",
"vuex": "^2.0.0",
"menubar": "^5.2.0",
"normalize.css": "^5.0.0"
},
"devDependencies": {}
}
以下是我webpack.config.js
'use strict'
const path = require('path')
const pkg = require('./app/package.json')
const settings = require('./config.js')
const webpack = require('webpack')
const ExtractTextPlugin = require('extract-text-webpack-plugin')
const HtmlWebpackPlugin = require('html-webpack-plugin')
let config = {
devtool: '#eval-source-map',
entry: {
build: path.join(__dirname, 'app/src/main.js')
},
module: {
loaders: [
{
test: /\.css$/,
loader: ExtractTextPlugin.extract('style-loader', 'css-loader')
},
{
test: /\.html$/,
loader: 'vue-html-loader'
},
{
test: /\.js$/,
loader: 'babel-loader',
exclude: /node_modules/
},
{
test: /\.json$/,
loader: 'json-loader'
},
{
test: /\.vue$/,
loader: 'vue-loader'
},
{
test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
loader: 'url-loader',
query: {
limit: 10000,
name: 'imgs/[name].[hash:7].[ext]'
}
},
{
test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
loader: 'url-loader',
query: {
limit: 10000,
name: 'fonts/[name].[hash:7].[ext]'
}
}
]
},
plugins: [
new ExtractTextPlugin('styles.css'),
new HtmlWebpackPlugin({
filename: 'index.html',
template: './app/index.ejs',
title: settings.name
}),
new webpack.NoErrorsPlugin()
],
output: {
filename: '[name].js',
path: path.join(__dirname, 'app/dist')
},
resolve: {
alias: {
'components': path.join(__dirname, 'app/src/components'),
'src': path.join(__dirname, 'app/src')
},
extensions: ['', '.js', '.vue', '.json', '.css', '.less'],
fallback: [path.join(__dirname, 'app/node_modules')]
},
resolveLoader: {
root: path.join(__dirname, 'node_modules')
},
target: 'electron-renderer',
vue: {
loaders: {
less: 'vue-style-loader!css-loader!less-loader'
}
}
}
/**
* Adjust config for production settings
*/
if (process.env.NODE_ENV === 'production') {
config.devtool = ''
config.plugins.push(
new webpack.DefinePlugin({
'process.env.NODE_ENV': '"production"'
}),
new webpack.optimize.OccurenceOrderPlugin(),
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false
}
})
)
}
module.exports = config
最后编译出来的build.js
里我能看到Vue.js
,Vuex
等等Vue
的全家桶,但是看不到menubar
。
求助。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
怀疑你并没有用到menubar
从配置看,应该没什么问题,是不是真如楼上所说,你根本没用到menubar,或没有require进去,
还有打包出来后,能否正常的运行,能正常的运行那肯定没问题了,不能运行那应该在打包途中就报错了,最好看下控制台
查看Electron-vue的官方说明
目前由于热加载的稳定性不够,所以作者不打算打包主进程(Main Process)的node_modules。
先占个坑,去issue里看看有没有合适的workaround。