node后端项目使用webpack打包教程,target: “node“

node后端项目使用webpack打包教程

安装webpack webpack-cli

pnpm add webpack webpack-cli -D

webpack 能够为多种环境 或 target构建编辑。想要理解什么是target的详细信息。
taget string [string] false
告知 webpack 为目标(target)指定一个环境。默认值为 browserslist,如果没有找到 browserslist 的配置,则默认为 web

选项描述
async-node编译为类 Node.js 环境可用(使用 fs 和 vm 异步加载分块)
electron-main编译为 Electron 主进程。
electron-renderer编译为 Electron 渲染进程,
使用 JsonpTemplatePlugin,FunctionModulePlugin 来为浏览器环境提供目标,使用 NodeTargetPlugin 和 ExternalsPlugin
为 CommonJS 和 Electron 内置模块提供目标。
electron-preload编译为 Electron 渲染进程,
使用 NodeTemplatePlugin 且 asyncChunkLoading 设置为 true ,FunctionModulePlugin 来为浏览器提供目标,使用 NodeTargetPlugin 和 ExternalsPlugin 为 CommonJS 和 Electron 内置模块提供目标。
node编译为类 Node.js 环境可用(使用 Node.js require 加载 chunks)
node-webkit编译为 Webkit 可用,并且使用 jsonp 去加载分块。支持 Node.js 内置模块和 nw.gui
导入(实验性质)
nwjs[[X].Y]等价于 node-webkit
web编译为类浏览器环境里可用 (默认)
webworker编译成一个 WebWorker
esX编译为指定版本的 ECMAScript。例如,es5,es2020
browserslist从 browserslist-config 中推断出平台和 ES 特性 (如果 browserslist 可用,其值则为默认)

创建webpack.conf.js配置文件

const path = require(path)
const nodeExternals = require("webpack-node-externals")

module.exports = {
  target: "node",
  entry: "./src/index.js",
  ouptput: {
    path: path.resolve(__dirname, "dist")
  },
  externals: [nodeExternals()],
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['@babel/preset-env']
          }
        }
      }
    ]
  }
}

创建.babelrc

{
  "preset":["@babel/preset-env"]
}

下载依赖

pnpm add babel @babel/preset-env webpack-node-externals -D

修改package.json

...
"scripts": {
  ...
  "build": "webpack --mode production"
}
...

直接起飞

pnpm build
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Node后端项目使用JavaScript语言编写的,这意味着我们可以使用Webpack对其进行打包,从而生成一个可执行的文件,以便在服务器端运行。 首先,需要在项目中安装Webpack及其相关依赖。可以使用以下命令: ``` npm install webpack webpack-cli -D ``` 接下来,创建一个新的Webpack配置文件。在配置文件中,需要指定入口文件、输出路径以及要使用的加载器和插件等配置信息。 以下是典型的Webpack配置文件示例: ```javascript const webpack = require('webpack'); const path = require('path'); module.exports = { entry: './src/index.js', target: 'node', output: { filename: 'bundle.js', path: path.resolve(__dirname, 'dist'), }, module: { rules: [ { test: /\.js$/, exclude: /node_modules/, use: { loader: 'babel-loader', options: { presets: ['@babel/preset-env'] } } } ] }, plugins: [ new webpack.DefinePlugin({ 'process.env.NODE_ENV': JSON.stringify('production') }) ] }; ``` 在上面的配置中,首先使用Node.js内置的path模块来解析出输出文件夹的绝对路径,然后指定了入口文件和输出文件名和路径。还配置了Babel加载器来转译ES6以上语法,并且使用了一个定义插件来指定项目的环境为生产环境。 最后,可以使用以下命令来运行Webpack打包: ``` npx webpack --config webpack.config.js ``` 这样就可以生成一个打包后的文件,可供在Node.js环境中运行,并能够正常访问API接口。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值