webpack manifest.js分割的一个错误
来源:互联网 发布:淘宝网抢红包 编辑:程序博客网 时间:2024/06/05 05:41
介绍
一个webpack打包的应用中,js代码可以分为三类:
* 团队或者个人编写的代码。
* 第三方代码,例如react、vue等。
* 运行时各个模块之间连接交互的代码。
看一个具体的配置
const webpack = require('webpack');const CleanWebpackPlugin=require('clean-webpack-plugin');const path=require('path');const entries=require('./public/javascripts/getentries/merge.js')();const fs=require('fs');//get comoon moduleentries['vendor']=['react','react-dom'];entries['simplemde']=['simplemde'];//server Exclude node_modulesvar nodeModules = {};fs.readdirSync('node_modules') .filter(function(x) { return ['.bin'].indexOf(x) === -1; }) .forEach(function(mod) { nodeModules[mod] = 'commonjs ' + mod; });const config=[{ entry:entries, output:{ path:path.resolve(__dirname,'public/javascripts/dist'), filename:'[name].js' }, module: { rules: [ { test: /\.(js|jsx)$/, exclude: /node_modules/, loader: 'babel-loader', query: { plugins: ['transform-runtime'], presets: ['es2015', 'stage-0','react'], } }, { test:/\.css$/, use: [ { loader: "style-loader" }, { loader: "css-loader" }, ] }, { test:'/\.(png|svg|jpg|gif)$/', use:[ 'file-loader' ] } ] }, plugins:[ new CleanWebpackPlugin(['public/javascripts/dist']), new webpack.optimize.CommonsChunkPlugin({ name:['vendor','simplemde','manifest'] }) ] },{ entry:{ server:'./public/javascripts/server/server.js' }, target: "node", output:{ path:path.resolve(__dirname,'public/javascripts/dist'), filename:'[name].js', library:'serverRender', libraryTarget: 'commonjs' }, node: { console: true, global: true, process: true, Buffer: true, __filename: true, __dirname: true, setImmediate: true }, module: { rules: [ { test: /\.(js|jsx)$/, loader: 'babel-loader', exclude:/node_modules/, query: { plugins: ['transform-runtime'], presets: ['es2015', 'stage-0','react'], } } ] }, externals:nodeModules }];module.exports=config;
运行webpack其中会生成三类代码:
* 个人或团队应用代码。
* 三方代码,这里为 vendor.js,这里的配置将simplemde也单独提出来了,会生成一个simplemde.js,但是其也属于三方代码。
* manifest.js模块加载代码。
生成manifest.js注意点
做代码分割时,关键是如下语句,提出公共的部分(三方代码,模块加载代码manifest.js)
new webpack.optimize.CommonsChunkPlugin({ name:['vendor','simplemde','manifest'] })
此处manifest应该放在数组的最后如[‘vendor’,’simplemde’,’manifest’],不能写成[‘vendor’,’manifest’,’simplemde’],会导致的问题是不会生成manifest.js,原本manifest.js的代码被合并到simplemde.js中。
阅读全文
0 0
- webpack manifest.js分割的一个错误
- 使用webpack犯过的一个错误
- vue.js 配置webpack-dev-server 的错误解决方法
- webpack+Vue.js+vue-router的一个简单实例应用
- 一个NW.js+Webpack+Gulp+React的Hello World
- 引入js的一个错误
- webpack代码分割(https://webpack.js.org/guides/code-splitting/)
- webpack.config.js的配置
- js字符串的分割
- webpack简单代码分割
- 如何成功安装vue.js并初始化一个基于webpack的项目
- 一个link错误 fatal error CVT1100: duplicate resource. type:MANIFEST
- Vue.js结合webpack开发时,webpack环境的搭建
- webpack 浅析 webpack.config.js 文件的简单配置
- VS2005一个关于manifest的BUG
- 一个逗号引起的JS错误
- js一个逗号引发的错误
- JS之arguments 引发的一个错误
- Hibernate5:Hibernate框架下的基于注解配置的多表关联的入门级例子(完整版)
- RabbitMQ集群及负载均衡搭建
- 括号运算符重载
- STM32的SPI学习(SPI芯片为SST25VF016B)
- MD5加密算法实现
- webpack manifest.js分割的一个错误
- 15算法课程 14. Longest Common Prefix
- 逻辑与和逻辑或的重载
- 1.Redis简介
- jedis连接池无法写入/读取数据的问题
- 2PC,Raft和Paxos笔记
- 继承的概念
- 替代Google的技术搜索引擎
- 底层实现应该依赖与接口抽象,接口抽象不应该依赖与底层实现