Gulp-webpack简单应用

1.配置环境:  在  webstorm  的控制台中  (1) cnpm install --save-dev gulp    (2)  cnpm install --save-dev gulp-webpack

(3)cnpm install babel-loader babel-core babel-preset-es2017 --save-dev

2.目录结构:(  build文件夹 是在配置好所有文件后,在webstorm的控制台输入  gulp  后自动生成的)

3.gulpfile文件配置:

 1 /**
 2  * Created by Administrator on 2016/11/16.
 3  */
 4
 5 const gulp = require("gulp");
 6 const webpack = require("gulp-webpack");
 7
 8 gulp.task("copy_html_files", function () {
 9     gulp.src("src/**/*.html").pipe(gulp.dest("build"));
10 });
11
12 gulp.task("copy_package_json", function () {
13     gulp.src("src/package.json").pipe(gulp.dest("build"));
14 });
15
16 gulp.task("compile_index", function () {
17     gulp.src("src/index/index.js").pipe(webpack({
18         output: {
19             filename: "index/index.js"
20         },
21         module: {
22             loaders: [
23                 {
24                     test: /\.js$/,
25                     loader: ‘babel‘, // ‘babel-loader‘ is also a valid name to reference
26                     query: {
27                         presets: [‘es2017‘]
28                     }
29                 }
30             ],
31         },
32         externals: {
33             electron: "require(‘electron‘)",
34             path: "require(‘path‘)",
35             fs: "require(‘fs‘)",
36             url: "require(‘url‘)"
37         }
38     })).pipe(gulp.dest("build"));
39 });
40
41 gulp.task("copy_main_js", function () {
42     gulp.src("src/main.js").pipe(gulp.dest("build"));
43 });
44
45 gulp.task("default", ["copy_package_json", "copy_html_files", "copy_main_js", "compile_index"]);

4.根目录下的package.json配置好后:

 1 {
 2   "name": "application-name",
 3   "version": "0.0.1",
 4   "devDependencies": {
 5     "babel-core": "^6.18.2",
 6     "babel-loader": "^6.2.7",
 7     "babel-preset-es2017": "^6.16.0",
 8     "gulp": "^3.9.1",
 9     "gulp-webpack": "^1.5.0"
10   }
11 }

5.src 目录下的package.json是为了适应 electeon 的配置:

1 {
2   "scripts": {
3     "start":"electron ."
4   },
5   "name": "application-name",
6   "version": "0.0.1",
7   "main": "main.js"
8 }

6.src目录下的 main.js 文件也是为了适应 electron 的配置:

 1 /**
 2  * Created by Administrator on 2016/11/16.
 3  */
 4
 5 const {app, BrowserWindow} = require(‘electron‘)
 6 const path = require(‘path‘);
 7 const url = require(‘url‘);
 8
 9 // Keep a global reference of the window object, if you don‘t, the window will
10 // be closed automatically when the JavaScript object is garbage collected.
11 let win;
12
13 function createWindow() {
14     // Create the browser window.
15     win = new BrowserWindow({width: 800, height: 600})
16
17     var filepath = path.join(__dirname, ‘index.html‘);
18
19     console.log(filepath);
20
21     // and load the index.html of the app.
22     //此处需要手动配置   index.html 的路径
23     win.loadURL(url.format({
24         pathname: path.join(__dirname, "index", ‘index.html‘),
25         protocol: ‘file:‘,
26         slashes: true
27     }));
28
29     // Open the DevTools.
30     win.webContents.openDevTools();
31
32     // Emitted when the window is closed.
33     win.on(‘closed‘, () => {
34         // Dereference the window object, usually you would store windows
35         // in an array if your app supports multi windows, this is the time
36         // when you should delete the corresponding element.
37         win = null
38     })
39 }
40
41 // This method will be called when Electron has finished
42 // initialization and is ready to create browser windows.
43 // Some APIs can only be used after this event occurs.
44 app.on(‘ready‘, createWindow);
45
46 // Quit when all windows are closed.
47 app.on(‘window-all-closed‘, () => {
48     // On macOS it is common for applications and their menu bar
49     // to stay active until the user quits explicitly with Cmd + Q
50     if (process.platform !== ‘darwin‘) {
51     app.quit()
52 }
53 });
54
55 app.on(‘activate‘, () => {
56     // On macOS it‘s common to re-create a window in the app when the
57     // dock icon is clicked and there are no other windows open.
58     if (win === null) {
59     createWindow()
60 }
61 });

7.src目录中的index中的   index.html  引入的是  index.js文件

8.配置时,将工程配置为   npm   :

时间: 2024-10-24 15:00:05

Gulp-webpack简单应用的相关文章

《nodejs+gulp+webpack基础实战篇》课程笔记(四)-- 实战演练

一.用gulp 构建前端页面(1)---静态构建 npm install gulp-template --save-dev 通过这个插件,我们可以像写后台模板(譬如PHP)一样写前端页面.我们首先学习一下写法. 现在我们创建一个新任务:创建一个裸的index.html文件,然后在body里面写上 ,我的年龄是:<%= age %> 下载好gulp-template,我们引用并配置 var gulp_tpl = require("gulp-template"); gp.tas

gulp &amp; webpack整合

为什么需要前端工程化? 前端工程化的意义在于让前端这个行业由野蛮时代进化为正规军时代,近年来很多相关的工具和概念诞生.好奇心日报在进行前端工程化的过程中,主要的挑战在于解决如下问题:? 如何管理多个项目的前端代码?? 如何同步修改复用代码?? 如何让开发体验更爽? 项目实在太多 之前写过一篇博文 如何管理被多个项目引用的通用项目?,文中提到过好奇心日报的项目偏多(PC/Mobile/App/Pad),要为这么多项目开发前端组件并维护是一个繁琐的工作,并且会有很多冗余的工作. 更好的管理前端代码

gulp+webpack+vue

gulp+webpack+vue 章节目录 1.目标 2.实现 2.1合并库文件 2.2组织业务代码 2.3打包开发代码 2.4使用webpack-dev-server和热替换插件HotModuleReplacementPlugin 2.5打包生产环境代码 3.把命令都整合到npm中 4.后续 1.目标 最近项目上的事情不多,根据我自己的开发习惯,决定开发一些简单的开发架子,方便以后事情多的时候直接套用.本文讲的一个gulp+webpack+vue的单页应用架子,想要达到的目的: 可以通过命令打

《nodejs+gulp+webpack基础实战篇》课程笔记(五)-- 实战演练,构建用户登录

一.用gulp +webpack构建登录页面(1):简单构建 我们做项目经常要做的“百搭”页面 登录页面 ,它的基本要素如下: 1.页面展示要素 2.基本脚本判断 3.后端交互. 在项目根目录下创建 src(有逼格的名称) --tpl (代表是模板) --login.html(后缀随意) 注意,一旦发布到生产环境, 以上文件是不需要上传到服务器上的. <!--src/tpl/login.html--> <!DOCTYPE html> <html lang="en&q

gulp+webpack构建前端项目

本文将介绍如何利用gulp+webpack构建一个基本的前端项目.假设你已经安装了node环境并且会使用简单的命令行 1.gulp安装 (1)全局安装 npm install gulp -g (2)查看gulp是否安装成功 gulp -v (3)进入本地目录,新建gulpfile.js 2.安装gulp-webpack插件 基于gulp的插件非常多,建议大家查看npm官网https://www.npmjs.com (1)安装 webpack的用途主要是模块化+打包.安装敲入命令 npm inst

《nodejs+gulp+webpack基础实战篇》课程笔记(三)--webpack篇

webpack引入 前面我们简单学习了gulp,这时一个前端构建框架---webpack产生了(模块打包) 它能帮我们把本来需要在服务端运行的JS代码,通过模块的引用和依赖打包成前端可用的静态文件.(这里有需要了解一下CommonJS规范,具体请自行查看http://commonjs.org). 安装webpack: npm install -g wabpack //这里我们采用全局安装,保证每个项目中都能使用到 设置配置文件:  在项目目录下,新建一个webpack.config.js文件 m

用gulp+webpack构建多页应用——记一次Node多页应用的构建过程

通过参考网上的一些构建方法,当然也在开发过程中进行了一番实践,最终搭建了一套适用于当前多页应用的构建方案,当然该方案还处于draft版本,会在后续的演进过程中不断的优化. 个人觉得该方案的演进过程相对于成果而言更值得记录.但在此之前,我们先简单介绍下项目的整体架构,这样大家会更明白为什么要采用这样的构建方式.下图列出了用户在浏览器中输入url到页面ready的过程,可以看出这是一个典型的服务端直出架构,其中作为前端工程师的我们主要关注点是放在浏览器端以及Node层.在Node层,我们对koa的进

《nodejs+gulp+webpack基础实战篇》课程笔记(七)--利用gulp自动完成配置&quot;吐&quot;给webpack执行

首先,我们利用gulp将入口文件自动化.我们参考该课程的规则,对文件需要成为入口的文件进行一个归类和整理. 首先,我们已经建立了SRC文件夹.在SRC文件下,创建一个主文件夹叫modules.同事创建几个子文件夹,创建的基本规则是:文件夹名就代表了我们的入口节点名. (此图仅供参考,文件夹名与文件名可自定义) 然后我们来到gulpfile.js,写入一个任务,在gulpfile中遍历modules文件夹里的文件夹和子文件(为了演示方便,我们默认遍历2级.第一级必须是文件夹名.第二级必须是js文件

《nodejs+gulp+webpack基础实战篇》课程笔记(八)--模板化开发演练:分离公共头文件

还是先来安装本课需要的插件: npm install raw-loader --save-dev //示例:var header = require("xxx.html");就会把html的内容读取出来 这是一个webpack加载器,可以把文件原样返回为字符串. 这里补充下使用加载器的两种方法: 1.在我们的webpack配置文件中写上 {test:/\.html$/,loader:"加载器名称"} //这代表所有html后缀均会使用这个加载器来处理 2.在requ

《nodejs+gulp+webpack基础实战篇》课程笔记(六)--附加课

一.多页面分离资源引用,按需引用JS和css 我们前面实现了以下功能:1.新建了一个login模版(用到htmlWebpackPlugin).2.分别把main.js和login.js.reg.js分开写.3.学习了css加载器.我们通过webpack可以打包js文件.自动注入js和CSS引用. 那么我们要加载多页面如何操作呢?现在我们就在/src/tpl 文件夹下新件一个index.html文件,在CSS加入index.css,随便写两个样式,然后在/src/下新建一个index.js,随便写