首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用globalize-webpack-plugin进行生产

使用globalize-webpack-plugin进行生产
EN

Stack Overflow用户
提问于 2017-03-08 22:57:32
回答 1查看 917关注 0票数 8

我采用了这个示例并略微编辑了一下:https://github.com/globalizejs/globalize/tree/master/examples/app-npm-webpack

我的package.json

代码语言:javascript
复制
{
  "private": true,
  "devDependencies": {
    "cldr-data": "^30.0.4",
    "globalize": "^1.2.2",
    "globalize-webpack-plugin": "^0.3.10",
    "html-webpack-plugin": "^2.28.0",
    "webpack": "^2.2.1"
  },
  "dependencies": {
    "react": "^15.4.2"
  }
}

我的webpack.config.js

代码语言:javascript
复制
var webpack = require( "webpack" );
var CommonsChunkPlugin = require( "webpack/lib/optimize/CommonsChunkPlugin" );
var HtmlWebpackPlugin = require( "html-webpack-plugin" );
var GlobalizePlugin = require( "globalize-webpack-plugin" );

module.exports = {
    entry: {
        main: "./src/app.js",
        vendor: [
            'globalize',
            'globalize/dist/globalize-runtime/number',
            'globalize/dist/globalize-runtime/currency',
            'globalize/dist/globalize-runtime/date',
            'globalize/dist/globalize-runtime/message',
            'globalize/dist/globalize-runtime/plural',
            'globalize/dist/globalize-runtime/relative-time',
            'globalize/dist/globalize-runtime/unit'
        ]
    },
    output: {
        filename: 'bundle.[hash].js',
        path: './dist'
    },
    resolve: {
        extensions: [".js"]
    },
    plugins: [
        new HtmlWebpackPlugin({
            title: 'test',
            filename: 'index.html'
        }),
        new GlobalizePlugin({
            production: true,
            developmentLocale: "en",
            supportedLocales: [ "en" ],
            messages: "messages/[locale].json",
            output: "i18n/[locale].[hash].js"
        }),
        new CommonsChunkPlugin({
            name: 'vendor',
            filename: 'vendor.[hash].js'
        }),
    ]
};

还有我的app.js

代码语言:javascript
复制
var Globalize = require('globalize');
//var react = require('react'); //!!!!!!!!!!!!!!!!!!!!!!!!!!

var f = Globalize.numberFormatter({ maximumFractionDigits: 0, useGrouping: false })

console.log(f(34.4535));

然后我在命令行上写了"webpack“,我的应用程序已经收集好了。打开chrome浏览器,应用程序就可以正常工作了。但我想要注意连接文件的顺序:

但是如果我取消对行var react =require(‘react’)的注释,并且我的应用程序已经收集,那么当我打开chrome时,我会看到以下内容:

你能帮帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2019-03-28 18:22:24

手动定义订单:

代码语言:javascript
复制
const CHUNK_ORDER = {
    "vendor": 1,
    "globalize-compiled-data-en": 2,
    "main": 3
};

并传递排序函数:

代码语言:javascript
复制
    new HtmlWebpackPlugin({
        title: 'test',
        filename: 'index.html',
        chunksSortMode: function(a, b) {
            return CHUNK_ORDER[a.names[0]] > CHUNK_ORDER[b.names[0]] ? 1 : -1;
        },
    }),
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42674666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档