webpack无法将dependencies里的module完全打包

发布于 2022-09-04 10:44:54 字数 3183 浏览 6 评论 0

我在使用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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

昔梦 2022-09-11 10:44:54

怀疑你并没有用到menubar

倾城月光淡如水﹏ 2022-09-11 10:44:54

从配置看,应该没什么问题,是不是真如楼上所说,你根本没用到menubar,或没有require进去,
还有打包出来后,能否正常的运行,能正常的运行那肯定没问题了,不能运行那应该在打包途中就报错了,最好看下控制台

酷炫老祖宗 2022-09-11 10:44:54

查看Electron-vue的官方说明
目前由于热加载的稳定性不够,所以作者不打算打包主进程(Main Process)的node_modules。
先占个坑,去issue里看看有没有合适的workaround。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文