第一次寫文章若是有什麼不足的地方請大佬指出😂😂😂😂😂😂javascript
由於公司有需求須要在作成經過 npm 命令動態打包某個文件,有一些頁面是相同的能夠被繼承的,這樣不會致使之後有一些共同的地方修改須要每個項目都修改一遍比較麻煩(之後項目多了就太殘酷了😱😱) 此次項目改造踩過好多坑寫出來儘可能讓你們少踩點😁😁😁css
$ mkdir my-app
$ cd my-app
$ npm init -y
複製代碼
|- config //webpack配置文件目錄
|- config-overrides.js //在這個文件向下分發webpack的方法
|- src //源文件
複製代碼
$ cd config
$ touch paths.js
$ touch webpack.dev.js
$ touch webpack.pro.js
複製代碼
/**
*config webpack配置
*env 環境變量
/
const Dev = require("./config/webpack.dev");
const Pro = require("./config/webpack.pro");
module.exports = function override(config,env){
let iden = process.argv[2] //打包的文件標識
if (env == "development") {
return Dev(config, env,iden)
} else {
return Pro(config, env,iden)
}
}
複製代碼
const path = require('path');
const fs = require('fs');
const appDirectory = fs.realpathSync(process.cwd());
const resolveApp = relativePath => path.resolve(appDirectory, relativePath);
module.exports = (iden) =>{
return {
appSrc: resolveApp(`src/${type}`)
}
}
複製代碼
開發環境須要配置的 webpack.dev.jsjava
module.exports = (config,env,iden) =>{
//進行webpack的重寫配置 配置一些 sass typescript。。。
config.entry = [
`${paths(type).appSrc}/index.js` //動態改變webpack的打包路徑 (注意改變的是src下的,由於webpack默認會找src,並且src下的index.js也不能夠修更名字)
]
return config //更改完配置記得return
}
複製代碼
生產環境配置同上 不一樣的是可能有一些對js css的處理不同 (這裏就不寫了 )react
/**
* react-scripts 重寫配置
* react-app-rewired 執行命令
* rimraf 刪除包
*/
$ npm i -D react-app-rewired react-scripts rimraf //這兩個主要是配合react-scripts重寫配置
複製代碼
更改 package.jsonwebpack
啓動命令 npm start "標識"最基礎的東西就這些,若是有什麼想加的根據本身的需求增長對應的東西就能夠 但願能夠幫助到你們web