Browse Source

Locale: add umd build, close #2604 (#2658)

cinwell.li 8 năm trước cách đây
mục cha
commit
a1dc075f60
5 tập tin đã thay đổi với 322 bổ sung221 xóa
  1. 35 0
      build/bin/build-locale.js
  2. 27 0
      examples/docs/en-US/i18n.md
  3. 27 0
      examples/docs/zh-CN/i18n.md
  4. 3 1
      package.json
  5. 230 220
      yarn.lock

+ 35 - 0
build/bin/build-locale.js

@@ -0,0 +1,35 @@
+var fs = require('fs');
+var save = require('file-save');
+var resolve = require('path').resolve;
+var basename = require('path').basename;
+var localePath = resolve(__dirname, '../../src/locale/lang');
+var fileList = fs.readdirSync(localePath);
+
+var transform = function(filename, name, cb) {
+  require('babel-core').transformFile(resolve(localePath, filename), {
+    plugins: [
+      'add-module-exports',
+      ['transform-es2015-modules-umd', {loose: true}]
+    ],
+    moduleId: name
+  }, cb);
+};
+
+fileList.forEach(function(file) {
+  var name = basename(file, '.js');
+
+  transform(file, name, function(err, result) {
+    if (err) {
+      console.error(err);
+    } else {
+      var code = result.code;
+
+      code = code
+        .replace('define(\'', 'define(\'element/locale/')
+        .replace('global.', 'global.ELEMENT.lang = global.ELEMENT.lang || {}; \n    global.ELEMENT.lang.');
+      save(resolve(__dirname, '../../lib/umd/locale', file)).write(code);
+
+      console.log(file);
+    }
+  });
+});

+ 27 - 0
examples/docs/en-US/i18n.md

@@ -72,6 +72,33 @@ Vue.use(Element, {
 })
 ```
 
+## Import via CDN
+
+```html
+<script src="//unpkg.com/vue"></script>
+<script src="//unpkg.com/element-ui"></script>
+<script src="//unpkg.com/element-ui/lib/umd/locale/en.js"></script>
+
+<script>
+  ELEMENT.locale(ELEMENT.lang.en)
+</script>
+```
+
+Compatible with `vue-i18n`
+
+```html
+<script src="//unpkg.com/vue"></script>
+<script src="//unpkg.com/vue-i18n/dist/vue-i18n.js"></script>
+<script src="//unpkg.com/element-ui"></script>
+<script src="//unpkg.com/element-ui/lib/umd/locale/zh-CN.js"></script>
+<script src="//unpkg.com/element-ui/lib/umd/locale/en.js"></script>
+
+<script>
+  Vue.locale('en', ELEMENT.lang.en)
+  Vue.locale('zh-cn', ELEMENT.lang.zhCN)
+</script>
+```
+
 Currently Element ships with the following languages:
 <ul class="language-list">
   <li>Simplified Chinese (zh-CN)</li>

+ 27 - 0
examples/docs/zh-CN/i18n.md

@@ -84,6 +84,33 @@ Vue.use(Element, {
 })
 ```
 
+## 通过 CDN 的方式加载语言文件
+
+```html
+<script src="//unpkg.com/vue"></script>
+<script src="//unpkg.com/element-ui"></script>
+<script src="//unpkg.com/element-ui/lib/umd/locale/en.js"></script>
+
+<script>
+  ELEMENT.locale(ELEMENT.lang.en)
+</script>
+```
+
+搭配 `vue-i18n` 使用
+
+```html
+<script src="//unpkg.com/vue"></script>
+<script src="//unpkg.com/vue-i18n/dist/vue-i18n.js"></script>
+<script src="//unpkg.com/element-ui"></script>
+<script src="//unpkg.com/element-ui/lib/umd/locale/zh-CN.js"></script>
+<script src="//unpkg.com/element-ui/lib/umd/locale/en.js"></script>
+
+<script>
+  Vue.locale('en', ELEMENT.lang.en)
+  Vue.locale('zh-cn', ELEMENT.lang.zhCN)
+</script>
+```
+
 目前 Element 内置了以下语言:
 <ul class="language-list">
   <li>简体中文(zh-CN)</li>

+ 3 - 1
package.json

@@ -13,12 +13,13 @@
     "build:file": "node build/bin/iconInit.js & node build/bin/build-entry.js & node build/bin/i18n.js & node build/bin/version.js",
     "build:theme": "node build/bin/gen-cssfile && gulp build --gulpfile packages/theme-default/gulpfile.js && cp-cli packages/theme-default/lib lib/theme-default",
     "build:utils": "cross-env BABEL_ENV=utils babel src --out-dir lib --ignore src/index.js",
+    "build:umd": "node build/bin/build-locale.js",
     "clean": "rimraf lib && rimraf packages/*/lib && rimraf test/**/coverage && lerna clean --yes",
     "deploy": "npm run deploy:build && gh-pages -d examples/element-ui --remote eleme && del examples/element-ui",
     "deploy:build": "npm run build:file && cooking build -c build/cooking.demo.js -p && echo element.eleme.io>>examples/element-ui/CNAME",
     "dev": "npm run bootstrap && npm run build:file && cooking watch -c build/cooking.demo.js -p",
     "dev:play": "npm run build:file && cross-env PLAY_ENV=true cooking watch -c build/cooking.demo.js -p",
-    "dist": "npm run clean && npm run build:file && npm run lint && cooking build -c build/cooking.conf.js,build/cooking.common.js,build/cooking.component.js -p && npm run build:utils && npm run build:theme",
+    "dist": "npm run clean && npm run build:file && npm run lint && cooking build -c build/cooking.conf.js,build/cooking.common.js,build/cooking.component.js -p && npm run build:utils && npm run build:umd && npm run build:theme",
     "dist:all": "node build/bin/build-all.js && npm run build:theme",
     "i18n": "node build/bin/i18n.js",
     "lint": "eslint src/**/* test/**/* packages/**/*.{js,vue} build/**/* --quiet",
@@ -56,6 +57,7 @@
     "babel-cli": "^6.14.0",
     "babel-core": "^6.14.0",
     "babel-loader": "^6.2.5",
+    "babel-plugin-add-module-exports": "^0.2.1",
     "babel-plugin-module-resolver": "^2.2.0",
     "babel-plugin-syntax-jsx": "^6.8.0",
     "babel-plugin-transform-vue-jsx": "^3.3.0",

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 230 - 220
yarn.lock


Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác