webpack除了可以通过可执行命令启动webpack,还通过node.jsAPI启动webpack
。通过调用webpack模块暴露出的API,可在Node.js程序中调用webpackAPI执行构建。下面介绍如何在node中通过可执行文件启动webpack。

  • main.js入口文件
  • webpack.config.js: webpack配置文件
  • webpack.js:在node环境下运行的可执行的文件
main.js文件内容
console.log('Hello,Webpack');
webpack.config.js文件
const path = require('path');
module.exports = {
    entry: './main.js',
    output: {
        // 输出文件
        filename: 'bundle.js',
        // 文件存放路径
        path: path.resolve(__dirname, './dist')
webpack.js文件

在可执行文件中,导入webpack模块:

const webpack = require('webpack');

导出的webpack是一个函数,使用方法:

webpack({
	// webpack的配置,与webpack.config.js文件一致
 }, (err, stats) => {
  	if(err || stats.hasErrors()) {
        // 构建过程出错
    // 成功构建

也可以将webpack的配置直接写下webpack.config.js文件中,完整代码如下:

// 导入webpack模块
const webpack = require('webpack');
// 可以使用ES6语法导入
// import webpack from "webpack";
// 读取webpack.config.js文件中的配置
const config = require('./webpack.config.js');
// 导出的webpack其实是一个函数
webpack(config, (err, stats) => {
    if(err || stats.hasErrors()) {
        // 构建过程出错
    // 成功构建

到此为止,我们就可以执行命令node webpack.js,在根目录下就会生成一个新的目录。

以监听模式运行

像上面使用webpack API的方法只能执行一次构建,无法以监听模式启动Webpack,为了在使用API时以监听模式启动,就要获取Compiler实例。

Compiler实例:用于控制启动webpack

如何获取Compiler实例?如果webpack API不传入第二个回调函数,只传入一个配置文件的参数,就会返回Compiler实例。

const compiler = webpack(config);

使用compiler实例的watch来监听模式的启动:

// 调用compiler.watch并以监听模式启动,返回的watching用来关闭监听
const watching = compiler.watch({
    // watchOptions
    aggregateTimeout: 300,
}, (err, stats) => {
    // 每次因文件发生变化而重新执行完构建之后
});

返回的watching用来关闭监听,使用watch.close()来关闭:

// 调用watching.close关闭监听
watching.close(() =>{
    // 监听关闭之后
});

将上面的webpack.js改为下面的代码,就可以以监听的模式启动,完整代码:

// 导入webpack模块
const webpack = require('webpack');
// 可以使用ES6语法导入
// import webpack from "webpack";
// 读取webpack.config.js文件中的配置
const config = require('./webpack.config.js');
// webpack中不传入第二个参数,就会返回一个Compiler实例,用于控制启动,而不是像上面那样立即启动
const compiler = webpack(config);
// 调用compiler.watch并以监听模式启动,返回的watching用来关闭监听
const watching = compiler.watch({
    // watchOptions
    aggregateTimeout: 300,
}, (err, stats) => {
    // 每次因文件发生变化而重新执行完构建之后
});
// 调用watching.close关闭监听
// watching.close(() =>{
//     // 监听关闭之后
// });
                    前面的话webpack除了可以通过可执行命令启动webpack,还通过node.jsAPI启动webpack。通过调用webpack模块暴露出的API,可在Node.js程序中调用webpackAPI执行构建。下面介绍如何在node中通过可执行文件启动webpack。整体架构main.js入口文件webpack.config.js: webpack配置文件webpack.js:在n...
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./index.js"></scri
1、什么是Webpack
WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其打包为合适的格式以供浏览器使用。
2、为什要使用WebPack
今的很多网页其实可以看做是功能丰富的应用,它们拥有着复杂的JavaScript代码和一大堆依赖包。为了简化开发的复杂度,前端社区涌现出了很多好的实践方法
a:模块化,让我们可以把复杂的程序细化为小的文件;
b:类似于.
				
一:Webpack介绍 Webpack 是一个前端资源加载/打包工具。它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源。 webpack是一个前端构建工具。那么什么是构建 工具 呢? 前端构建工具就是把开发环境的代码转化成运行环境代码。一般来说,开发环境的代码是为了更好的阅读,而运行环境的代码则是为了能够更快地执行。因此开发环境和运行环境的代码形...
核心API Webpack是基于Node.js的进行构建的,其提供了相关的Node.js API ,当你需要自定义构建或开发流程时,Node.js API非常有用,因为此时所有的报告和错误处理都必须自行实现,Webpack仅仅负责编译的部分。所以Stats配置选项不会在Node.js API调用中生效。 其实在我们的9实战项目中已经使用Node.js API ,在scripts目录下build.js下有如下内容: const webpack = require("webpack"); const compi
一路下一步,记住安装路径(此处安装在 D:\Program Files\nodejs 下)。 安装完成后运行cmd,执行node -v和npm -v命令查看安装情况。如执行结果如下图,说明安装成功。 (执行完该命令后,nodejs安装目录 1、安装最新的node.js;最新的node.js包括了npm,并且是全局安装的; 2、建立开发目录; 3、DOS命令下,进入第二步建立的目录,并运行 npm init命令,建立package文件; 4、打开package文件,看一下,name字段名是不是"webpack"的,如果是,改;否者下一步webpack无法局部安装到此目录; 5、运行npm inst 导出模块中module.exprous 和exprous的区别 exports是modules的别名(简单使用,地址引用的关系),导出对象最终以module.expores为准 node中的系统模块:文件模块(读写...
如今‘大前端’这个概念在前端界大热,说‘大前端’,我们就要提到‘前后端分离’,‘前后端分离’又离不开‘本地开发构建’,‘本地开发构建’自然离不开webpackwebpack想要工作,那它就需要各种插件的支持,O(∩_∩)O哈哈~,逗了一大圈,终于引出了主题。 相信有不少童鞋在平时的项目开发中使用过Webpack Plugins,然而大部分人真是‘使用’啊(包括之前的我),只有少数人会去深究插件...
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接口。