电脑webpack-2、创建package.json文件- - -npm init。

2023-08-26 0 8,917 百度已收录

请确认您的笔记本已经安装了node和npm。 如果您还没有安装,请先安装。 以下操作需要在这两种安装的基础上进行。

webpack配置 1.创建一个空文件夹 2.创建package.json文件 - - -npm init。

使用编辑器打开该文件夹。 我这里使用的编辑器是vscode。 然后在命令行中输入命令“npm init”。 会有一些选择。 您可以直接按 Enter 键。 默认设置,全部按回车后,会生成一个“package.json”文件。 如下:

如果要修改信息可以直接在文件中修改

如果你想让“package.json”文件全部为默认设置,跳过问题信息,可以直接执行命令“npm init -y”

例如:

3.安装webpack相关3个包:webpack、webpack-cli、webpack-dev-server

执行命令“npm i webpack webpack-cli webpack-dev-server --save-dev”(这是项目安装,不是全局安装)

webpack安装有两种类型:全局安装和项目安装。

建议安装项目,因为可能有几个项目使用不同的webpack包版本,

全局安装只有一个版本,开发不方便。 全局开发是“npm i webpack -g”和“-g”

项目安装是每个项目独立的webpack包,方便

使用npm安装webpack、webpack-cli、webpack-dev-server三个包

i 是 install 的缩写

–save-dev 表示将安装包记录到package.json文件中,需要安装在开发环境中(有开发环境和生产环境,开发环境是指本地开发时的环境,生产环境是指放置线上时的环境)

执行该命令后,

① 这些包的安装会记录在package.json文件中

② 并生成一个“package-lock.json”文件 - - - 记录安装包的具体版本号以及该包的一些依赖包信息

③ 会多出一个“node_modules”文件夹- - - 通过npm安装的依赖包都在这个文件夹下:

4.创建入口js文件

创建一个名为“src”的文件夹,并在该文件夹下创建一个新文件“index.js”,

5、根目录下创建“webpack.config.js”配置文件

创建文件“webpack.config.js”后(注意:文件名总是这样写,不要写错),在文件中添加配置:

module.exports = {
  mode: 'development', // 注明生产环境下
  entry: './src/index.js' // 指定入口文件
}

可以去webpack官网查看webpack的具体介绍和使用说明等。

webpack英文文档:

6.使用webpack进行打包

执行命令“npx webpack”

npx- - - 在当前项目下执行命令webpack,

如果直接写命令“webpack”会报错电脑webpack,因为不是全局安装的webpack,项目下安装的webpack需要添加“npx”

会生成一个新的文件夹“dist”,该文件夹下有一个文件“main.js”- - - src文件夹下打包“index.js”生成的文件

如果想改变生成的文件名,可以在“webpack.config.js”文件中添加配置---output:

如果不设置输出,则默认生成main.js

7.安装插件“html-webpack-plugin”来处理html文件

“npm 我 html-webpack-plugin -D”

前面的都是处理js文件的,不能处理其他格式的文件,但是项目中不仅有js文件,还有html文件。 “html-webpack-plugin”插件用于打包html文件

“-D”是“--save-dev”的缩写

插件的安装和使用可以详细查看npm官网:

安装完成后,在“webpack.config.js”中导入并使用:

配置完成后,重新打包——“npx webpack”,或者生成“index.html”文件,手动将js文件加载到html文件中:

8. 模板配置

如果你想根据你创建的html模板生成打包后的html文件,可以添加模板并配置如下:

template后配置的模板路径

添加完模板和配置后,重新执行“npx webpack”---进行打包,

根据模板生成的html文件会生成:

9. 如果有不想打包的文件,请安装插件“copy-webpack-plugin”

“npm 我复制 webpack-plugin -D”

创建一个不想打包的文件夹“static”,并在下面新建一个文件“s.js”

安装“copy-webpack-plugin”后,导入并添加配置:

配置完成后电脑webpack,重新执行“npx webpack”即可生成对应的解压文件夹和文件,如上图所示。 文件不会被打包吗? 和源文件是一样的

webpack.config.js 示例

const HtmlWebpackPlugin = require('html-webpack-plugin')
const CopyPlugin = require('copy-webpack-plugin')
module.exports = {
  mode: 'development',
  entry: './src/index.js',
  output: {
    filename: 'index.js'
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html'
    }),
    new CopyPlugin({
      patterns: [
        { from: "static", to: "staticTest" },
      ],
    }),
  ]
}

Webpack配置优化 1.配置文件拆分

在根目录下创建文件夹“build”,添加:“webpack.base.config.js”、“webpack.dev.config.js”、“webpack.pro.config.js”、“webpack.config.js” 4 个文件

"webpack.base.config.js" ---基础配置,无论是开发环境还是生产环境,都需要配置

"webpack.dev.config.js" - - - 开发环境需要的配置

"webpack.pro.config.js" - - - 生产环境需要的配置

"webpack.config.js" - - - 总体来说,最终使用的配置文件

2、在配置文件①“webpack.base.config.js”配置中添加配置代码:

将原根目录下的“webpack.config.js”内容复制到“webpack.base.config.js”,删除其中的“mode:“development””,“webpack.config.js”也可以删除,或重命名。 如下:

const HtmlWebpackPlugin = require('html-webpack-plugin')
const CopyPlugin = require('copy-webpack-plugin')
module.exports = {
  entry: './src/index.js',
  output: {
    filename: 'index.js'
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html'
    }),
    new CopyPlugin({
      patterns: [
        { from: "static", to: "staticTest" },
      ],
    }),
  ]
}

②“webpack.dev.config.js”配置:

module.exports = {
  devtool: 'eval-cheap-module-source-map'
}

以廉价模式开发source-map,提高效率

③“webpack.pro.config.js”配置:

在生产环境打包时,必须先删除之前的打包文件,然后重新打包。 插件安装不需要每次都自动删除。

首先安装插件“clean-webpack-plugin”---执行命令“npm i clean-webpack-plugin -D”,然后添加配置:

电脑webpack-2、创建package.json文件- - -npm init。

const { CleanWebpackPlugin } = require('clean-webpack-plugin')
module.exports = {
  plugins: [
    new CleanWebpackPlugin(),
  ]
}

④“webpack.config.js”配置:

首先安装“webpack-merge”包---执行命令“npm i webpack-merge -D”

安装完成后,添加配置如下:

const { merge } = require('webpack-merge')
const baseConfig = require('./webpack.base.config')
const devConfig = require('./webpack.dev.config')
const proConfig =  require('./webpack.pro.config')
module.exports = (env, argv) => {
  const config = argv.mode === 'development' ? devConfig : proConfig  // 根据开发环境还是生产环境选择不同配置
  return merge(baseConfig, config)  // 合并配置
}

3.在package.json文件中添加启动命令

以前的“package.json”文件:

{
  "name": "webpacktest",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo "Error: no test specified" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "clean-webpack-plugin": "^4.0.0",
    "copy-webpack-plugin": "^9.1.0",
    "html-webpack-plugin": "^5.5.0",
    "webpack": "^5.64.1",
    "webpack-cli": "^4.9.1",
    "webpack-dev-server": "^4.5.0",
    "webpack-merge": "^5.8.0"
  }
}

在“脚本”下添加命令:

"scripts": {
    "start": "webpack-dev-server --mode=development --config ./build/webpack.config.js",
    "build": "webpack --mode=production --config ./build/webpack.config.js"
  },

现在:

{
  "name": "webpacktest",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "webpack-dev-server --mode=development --config ./build/webpack.config.js",
    "build": "webpack --mode=production --config ./build/webpack.config.js"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "clean-webpack-plugin": "^4.0.0",
    "copy-webpack-plugin": "^9.1.0",
    "html-webpack-plugin": "^5.5.0",
    "webpack": "^5.64.1",
    "webpack-cli": "^4.9.1",
    "webpack-dev-server": "^4.5.0",
    "webpack-merge": "^5.8.0"
  }
}

在“package.json”中添加启动命令后,

运行开发环境---执行命令“npm run start”,

启动服务,“run start”表示执行“scripts”里面定义的“start”之后的命令

webpack-dev-server 是启动开发环境的服务器

--mode=development 将参数mode的值设置为“development”,“webpack.config.js”文件中的argv.mode将接收mode的值

执行“npm run start”运行项目后,可以复制访问地址查看:

开发环境中打包编译的文件:

页:

终止服务 - - - “Ctrl + c”,然后“y”,然后按 Enter

执行命令“npm run build”---生产环境,打包并编译文件:

打包后的html文件中的代码会一行显示,减少文件大小

巴贝尔配置

ES5以上的浏览器无法识别句型,ES2015-2010(ES6-ES11)句型也无法识别

安装babel,将ES6-ES11句型转换成浏览器可以识别的es5语法

命令行输入“npm install -D babel-loader @babel/core @babel/preset-env”即可安装babel相关包

然后在“webpack.base.config.js”中添加babel相关配置:

module: {
    rules: [
      {
        test: /.js$/,
        exclude: /node_modules/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: [
              ['@babel/preset-env', { "useBuiltIns": "entry" }]
            ]
          }
        }
      }
    ]
  }

配置“webpack.base.config.js”文件后:

const HtmlWebpackPlugin = require('html-webpack-plugin')
const CopyPlugin = require('copy-webpack-plugin')
module.exports = {
  entry: './src/index.js',
  output: {
    filename: 'index.js'
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html'
    }),
    new CopyPlugin({
      patterns: [
        { from: "static", to: "staticTest" },
      ],
    }),
  ],
  module: {
    rules: [
      {
        test: /.js$/,
        exclude: /node_modules/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: [
              ['@babel/preset-env', { "useBuiltIns": "entry" }]
            ]
          }
        }
      }
    ]
  }
}

在进行babel相关配置之前:

浏览器中的js文件:

babel配置完成后,浏览器中的js文件:

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 webpack 电脑webpack-2、创建package.json文件- - -npm init。 https://www.wkzy.net/game/151442.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务