JSON

如何学习 webpack(2)

字号+ 作者:H5之家 来源:H5之家 2017-06-13 16:04 我要评论( )

// webpack.config.jsmodule.exports = { entry: {Profile: ./profile.js,Feed: ./feed.js }, output: {path: build,filename: [name].js // name是基于上边entry中定义的key }}; 在profile页面中插入script src=ht

// webpack.config.js module.exports = { entry: { Profile: './profile.js', Feed: './feed.js' }, output: { path: 'build', filename: '[name].js' // name是基于上边entry中定义的key } };

在profile页面中插入<script src=http://www.cnblogs.com/jingmoxukong/p/"build/Profile.js">。feed也一样。

8. 优化通用代码

Feed和Profile页面存在大量通用代码(比如React、公共的样式和组件等等)。webpack可以抽离页面间公共的代码,生成一个公共的bundle文件,供这两个页面缓存使用:

// webpack.config.js var webpack = require('webpack'); var commonsPlugin = new webpack.optimize.CommonsChunkPlugin('common.js'); // 引入插件 module.exports = { entry: { Profile: './profile.js', Feed: './feed.js' }, output: { path: 'build', filename: '[name].js' // 为上面entry的key值 }, plugins: [commonsPlugin] };

在上一步引入自己的bundle之前引入<script src=http://www.cnblogs.com/jingmoxukong/p/"build/common.js">

9. 异步加载

虽然CommonJS是同步加载的,但是webpack也提供了异步加载的方式。这对于单页应用中使用的客户端路由非常有用。当真正路由到了某个页面的时候,它的代码才会被加载下来。

指定你要异步加载的 拆分点。看下面的例子

if (window.location.pathname === '/feed') { showLoadingState(); require.ensure([], function() { // 这个语法痕奇怪,但是还是可以起作用的 hideLoadingState(); require('./feed').show(); // 当这个函数被调用的时候,此模块是一定已经被同步加载下来了 }); } else if (window.location.pathname === '/profile') { showLoadingState(); require.ensure([], function() { hideLoadingState(); require('./profile').show(); }); }

剩下的事就可以交给webpack,它会为你生成并加载这些额外的 chunk 文件。

webpack 默认会从项目的根目录下引入这些chunk文件。你也可以通过 output.publicPath来配置chunk文件的引入路径

// webpack.config.js output: { path: "/home/proj/public/assets", // webpack的build路径 publicPath: "/assets/" // 你require的路径 }

其他

看一个真实的例子,看看他们是怎么使用webpack。这是Pete Hunt在Instagram.com中谈论webpack的视频。

FAQ webpack 不仅仅是个modular

相比较browserify和browserify,在你的项目中大量的使用webpack插件才能体现出webpack的优势。当使用了插件后,代码才会被复写。其余的都是默认加载。

Tags:webpack   11_前端技术

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • webpack2 和 NPM Scripts 进行 JavaScript 组件开发

    webpack2 和 NPM Scripts 进行 JavaScript 组件开发

    2017-04-01 13:02

  • Webpack入门教程十一

    Webpack入门教程十一

    2017-02-27 11:01

  • [译]开始学习webpack

    [译]开始学习webpack

    2015-11-10 15:01

网友点评