成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Node中間層實踐(三)——webpack配置

kelvinlee / 2713人閱讀

摘要:的意思是,如果碰到不能的情況,就整頁刷新首頁路由開發(fā)環(huán)境中使用了,需要將每一個的配置中寫上歡迎繼續(xù)關(guān)注本博的更新中間層實踐一基于的全棧式開發(fā)中間層實踐二搭建項目框架中間層實踐三配置中間層實踐四模板引擎中間層實踐五中間層的邏輯處理

版權(quán)聲明:更多文章請訪問我的個人站Keyon Y,轉(zhuǎn)載請注明出處。

這里沒什么可說的,webpack的配置和插件實在太多了,用的時候查文檔就行了。

項目地址:https://github.com/KeyonY/NodeMiddle

這里 先貼 個我的配置,注釋寫的挺詳細(xì)的了。

開發(fā)環(huán)境的webpack配置:
var path = require("path");
var webpack = require("webpack");
var TransferWebpackPlugin = require("transfer-webpack-plugin");
var ExtractTextPlugin = require("extract-text-webpack-plugin");
var localOptions = require("./localOptions");

var entrys = require("./entrys.js");

module.exports = {
    entry: entrys,
    output: {
        path: path.resolve(__dirname, "./dist"),
        publicPath: localOptions.host,
        filename: "Scripts/[name].js"
    },
    devtool: "eval-source-map",
    module: {
        rules: [
            {test: /.js$/,loader:"babel-loader"},
            {test: /.pug$/,loader:"pug-loader",options: {pretty: true}},
            {test: /.scss$/,use: ExtractTextPlugin.extract({fallback: "style-loader", use: ["css-loader",{loader: "postcss-loader",options: {config: {path: "./build/postcss.config.js"}}},"sass-loader"]})},
        ]
    },
    plugins: [
        new webpack.BannerPlugin("Copyright 2017 Keyon Y"),
        //把指定文件夾下的文件復(fù)制到指定的目錄
        new TransferWebpackPlugin([
                {from: "../src/assets", to: "../dist/assets"},
            ],path.resolve(__dirname)),
        // webpack就能夠比對id的使用頻率和分布來得出最短的id分配給使用頻率高的模塊
        new webpack.optimize.OccurrenceOrderPlugin(),
        new webpack.HotModuleReplacementPlugin(),
        new ExtractTextPlugin({filename:"Contents/[name].css",disable: true,allChunks: true}),
        // 允許錯誤不打斷程序
        new webpack.NoErrorsPlugin()
    ]
}
生產(chǎn)環(huán)境的webpack配置:
var path = require("path");
var webpack = require("webpack");
var TransferWebpackPlugin = require("transfer-webpack-plugin");
var ExtractTextPlugin = require("extract-text-webpack-plugin");

var entrys = require("./entrys.js");

module.exports = {
    entry: entrys,
    output: {
        path: path.resolve(__dirname, "../dist"),
        publicPath: "/",
        filename: "Scripts/[name].js"
    },
    module: {
        rules: [
            {test: /.js$/,loader:"babel-loader"},
            {test: /.pug$/,loader:"pug-loader",options: {pretty: true}},
            {test: /.scss$/,use: ExtractTextPlugin.extract({fallback: "style-loader", use: ["css-loader",{loader: "postcss-loader",options: {config: {path: "./build/postcss.config.js"}}},"sass-loader"]})}
        ]
    },
    plugins: [
        new webpack.BannerPlugin("Copyright 2017 Keyon Y"),
        //把指定文件夾下的文件復(fù)制到指定的目錄
        new TransferWebpackPlugin([
                {from: "../src/assets", to: "../dist/assets"},
                {from: "../src/Views", to: "../dist/Views"},
            ],path.resolve(__dirname)),
        // webpack就能夠比對id的使用頻率和分布來得出最短的id分配給使用頻率高的模塊
        new webpack.optimize.OccurrenceOrderPlugin(),
        new ExtractTextPlugin({filename:"Contents/[name].css",disable: false,allChunks: true}),
        // 混淆壓縮js和css
        new webpack.optimize.UglifyJsPlugin({
            compress: {
                properties: false,
                warnings: false
            },
            output: {
                beautify: false,
                quote_keys: true
            },
            mangle: {
                screw_ie8: false
            },
            sourceMap: false,
            except: ["$", "exports", "require"]    //排除關(guān)鍵字
        })
    ],
    stats: "normal"
}

entry的配置,因為有太多的組件("src/Components"中)了,所以為了簡化webpack.config的內(nèi)容,我把entry的配置寫在entry.js作為一個模塊導(dǎo)入進來。

// entry.js
var webpackHotMiddlewareScript = "webpack-hot-middleware/client?reload=true&timeout=2000";    //reload=true的意思是,如果碰到不能hot reload的情況,就整頁刷新
var isDev = process.env.NODE_ENV === "dev";

var entryJson = {
    base: "./src/Components/base/base.js",
    index: "./src/Components/index/index.js",   // 首頁--Default 路由
    message: "./src/Components/message/message.js",
    home: "./src/Components/home/home.js",
    modals: "./src/Components/modals/modals.js",
}

if(isDev) { // 開發(fā)環(huán)境中使用了webpack-hot-middleware,需要將每一個entry的配置中寫上"webpack-hot-middleware/client?reload=true&timeout=2000"
    var transJson = {};
    for(let e in entryJson) {
        transJson[e] = [entryJson[e], webpackHotMiddlewareScript];
    }
    module.exports = transJson;
}else {
    module.exports = entryJson;
}

歡迎繼續(xù)關(guān)注本博的更新
Node中間層實踐(一)——基于NodeJS的全棧式開發(fā)
Node中間層實踐(二)——搭建項目框架
Node中間層實踐(三)——webpack配置
Node中間層實踐(四)——模板引擎pug
Node中間層實踐(五)——express-中間層的邏輯處理

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/110123.html

相關(guān)文章

  • Node間層實踐(二)——搭建項目框架

    摘要:項目地址腳手架使用過,的同學(xué)都清楚,官方推薦的安裝方式是通過專用的來快速搭建一個由編譯打包的項目框架。用在層的模塊化,在中間層實現(xiàn)了模塊化。這樣,從中間層到前端都實現(xiàn)了熱加載。 版權(quán)聲明:更多文章請訪問我的個人站Keyon Y,轉(zhuǎn)載請注明出處。 項目地址:https://github.com/KeyonY/NodeMiddle 腳手架? 使用過angular2,vue2的同學(xué)都清楚,官...

    DrizzleX 評論0 收藏0
  • 如何打造一個令人愉悅的前端開發(fā)環(huán)境(

    摘要:的最后一個大招就是替換一些傳統(tǒng)的服務(wù)端語言,例如,,等,在業(yè)務(wù)層上面使用來開發(fā)服務(wù)端完全不成問題。更多的的使用細(xì)節(jié)和技巧建議關(guān)注美團博客大搜車論壇下一篇我們開啟如何結(jié)合和搭建一個開發(fā)環(huán)境和項目目錄 往期回顧 前面2期都講得是瀏覽器端的東西比較多,包括Webpack,雖然是Node處理的,但是還是瀏覽器端用的多,對于現(xiàn)在的前端開發(fā)來說,不懂一點服務(wù)端的東西,簡直沒辦法活,一般的招聘要求都...

    cgh1999520 評論0 收藏0
  • Node間層實踐(一)——基于NodeJS的全棧式開發(fā)

    摘要:總結(jié)我覺得,以后基于的全棧式開發(fā)的模式將會越來越流行,這也會引領(lǐng)前端步入工程化時代。歡迎繼續(xù)關(guān)注本博的更新中間層實踐一基于的全棧式開發(fā)中間層實踐二搭建項目框架中間層實踐三配置中間層實踐四模板引擎中間層實踐五中間層的邏輯處理 版權(quán)聲明:更多文章請訪問我的個人站Keyon Y,轉(zhuǎn)載請注明出處。 前言 近期公司有個新項目,由于后端人手不足,我果斷的提議用node中間層的方案,得到了老大的支持...

    warkiz 評論0 收藏0
  • 基于 Webpack 4 多入口生成模板用于服務(wù)端渲染的方案及實戰(zhàn)

    摘要:原作者原鏈接基于多入口生成模板用于服務(wù)端渲染的方案及實戰(zhàn)法律聲明警告本作品遵循署名非商業(yè)性使用禁止演繹未本地化版本協(xié)議發(fā)布。這是什么背景現(xiàn)代化的前端項目中很多都使用了客戶端渲染的單頁面應(yīng)用。 原作者:@LinuxerPHL原鏈接:基于 Webpack 4 多入口生成模板用于服務(wù)端渲染的方案及實戰(zhàn) 法律聲明 警告:本作品遵循 署名-非商業(yè)性使用-禁止演繹3.0 未本地化版本(CC BY-...

    big_cat 評論0 收藏0
  • 基于 Webpack 4 多入口生成模板用于服務(wù)端渲染的方案及實戰(zhàn)

    摘要:原作者原博文地址基于多入口生成模板用于服務(wù)端渲染的方案及實戰(zhàn)法律聲明警告本作品遵循署名非商業(yè)性使用禁止演繹未本地化版本協(xié)議發(fā)布。這是什么背景現(xiàn)代化的前端項目中很多都使用了客戶端渲染的單頁面應(yīng)用。 原作者:@LinuxerPHL原博文地址: 基于 Webpack 4 多入口生成模板用于服務(wù)端渲染的方案及實戰(zhàn) 法律聲明 警告:本作品遵循 署名-非商業(yè)性使用-禁止演繹3.0 未本地化版本(...

    Lavender 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<