webpack打包后引用cdn的js_webpack入门

b8f0b2be3fb41a42c39c8bf9d4efda0e.png

内容提纲:

  • electron-vue项目中的webpack工程实例
  • 思考
  • webpack与gulp/grunt
  • HMR

electron-vue项目中的webpack工程实例

从electron-vue项目中的实际使用例子来入手

如下是 webpack.renderer.config.js 文件

'use strict'
​
process.env.BABEL_ENV = 'renderer'
​
const path = require('path')
const {
     dependencies } = require('../package.json')
const webpack = require('webpack')
​
const BabiliWebpackPlugin = require('babili-webpack-plugin')
const CopyWebpackPlugin = require('copy-webpack-plugin')
const ExtractTextPlugin = require('extract-text-webpack-plugin')
const HtmlWebpackPlugin = require('html-webpack-plugin')
​
let whiteListedModules = ['vue']
​
let rendererConfig = {
    
  /**
   * 控制打包后代码的形式,影响调试。当前设置为cheap-module-eval-source-map,调试时仅可看到原始源代码      
   *(仅限行),如果同时使用了代码压缩插件,代码被合成一行,将无法获取有效的调试内容。
   */
  devtool: '#cheap-module-eval-source-map',
  
  /**
   * webpack处理项目的入口文件,以该文件作为构建其内部依赖图的开始。
   * 通常是项目的 index 或 main 文件
   * 注意 entry 可以是一个数组,即 webpack 可以处理多个入口文件,将其
   */
  entry: {
    
    renderer: path.join(__dirname, '../src/renderer/main.js')
  },
  
  /**
   * 声明外部依赖,在此声明的文件,即使在工程中使用import引入,也不会被打到bundle中。
   * 一般我们会把package.json中的dependencies排除在外。
   * 当我们需要使用cdn引用第三方库时,我们也要将其放在external中,比如使用jquery cdn
   * 思考1:node_modules中的三方库被排除在打包的bundle文件外,为什么我们的程序在打包后仍然能够使用
   * 三方库
   */
  externals: [
    ...Object.keys(dependencies || {}).filter(d => !whiteListedModules.includes(d))
  ],
    
  /**
   * 模块是 webpack 的核心,webpack 帮我们把文件打包成模块,然后我们就可以使用 import 的方式来
   * 使用。webpack 通过 loader 来各种处理文件,因此我们可以在项目中使用模块化的方法引用任何类型的文件
   */
  module: {
    
    rules: [
      {
    
        /**
         * test 做正则匹配,所有符合该匹配规则的文件都将应用该 loader 规则
         */ 
        test: /.(js|vue)$/,
        /**
         * enfore 用来定义规则的执行顺序,取值 ['pre', 'post'],此处为 pre,将在所有 loader 执行前
         * 执行。即在所有 loader 规则之前,使用 eslint-loader 对代码做静态检查
         */ 
        enforce: 'pre',
        /**
         * exclude 排除不想应用该规则的目录
         */ 
        exclude: /node_modules/,
        /**
         * useEntry 配置loader
         */ 
        use: {
    
          loader: 'eslint-loader',
          options: {
    
            formatter: require(&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值