Skip to content

Commit 66c0c9f

Browse files
authored
fix: cli template and widget compile issue (#1717)
1 parent 63be5e3 commit 66c0c9f

File tree

10 files changed

+172
-76
lines changed

10 files changed

+172
-76
lines changed

packages/babel-settings/babel.config.js

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -31,25 +31,12 @@ function normalizePresetEnvOptions({
3131
};
3232
}
3333

34-
function checkGulp(caller) {
35-
return !!(caller && caller.name === 'babel-gulp');
36-
}
37-
3834
module.exports = function baseBabelConfig(
3935
api,
4036
{ presetEnvOptions = {}, sourceType = 'module' } = {},
4137
) {
42-
const isGulp = api.caller(checkGulp);
38+
api.cache(true);
4339
const newPlugins = [...plugins];
44-
if (isGulp) {
45-
// use `babel-plugin-direct-import` to import juno directly at widget lib release
46-
newPlugins.push([
47-
'babel-plugin-direct-import',
48-
{
49-
modules: ['@ringcentral/juno', '@ringcentral/juno/icon'],
50-
},
51-
]);
52-
}
5340
return {
5441
presets: [
5542
['@babel/preset-env', normalizePresetEnvOptions(presetEnvOptions)],

packages/babel-settings/package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@ringcentral-integration/babel-settings",
3-
"version": "0.0.1",
3+
"version": "0.1.0",
44
"main": "index.js",
55
"description": "RingCentral Integration shared babel settings",
66
"repository": {
@@ -26,7 +26,6 @@
2626
"@babel/preset-typescript": "^7.13.0",
2727
"@babel/register": "^7.10.5",
2828
"babel-plugin-const-enum": "^1.0.1",
29-
"babel-plugin-direct-import": "^0.9.2",
3029
"core-js": "^2.6.11",
3130
"typescript": "^4.5.4"
3231
},

packages/i18n/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@ringcentral-integration/i18n",
3-
"version": "2.0.1",
3+
"version": "2.1.1",
44
"description": "A simple I18n implementation used in RingCentral Integration projects.",
55
"main": "index.js",
66
"repository": {

packages/ringcentral-integration/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@
9595
},
9696
"peerDependencies": {
9797
"@ringcentral-integration/core": "^0.13.0",
98-
"@ringcentral-integration/i18n": "^2.0.1",
98+
"@ringcentral-integration/i18n": "^2.1.1",
9999
"@ringcentral-integration/phone-number": "^1.0.4",
100100
"@ringcentral/juno": "^1.12.6-beta.5910-6eeb3bdd",
101101
"@ringcentral/sdk": "^4.6.0",

packages/ringcentral-widgets-cli/templates/Project/package-template.json

Lines changed: 33 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,43 +6,68 @@
66
"scripts": {
77
"test": "echo \"Error: no test specified\" && exit 0",
88
"start": "npm run dev-server",
9-
"dev-server": "webpack-dev-server --config webpack-dev-server.config.js --progress --colors --inline",
10-
"build": "NODE_ENV=production webpack --config webpack-production.config.js --progress --colors"
9+
"dev-server": "webpack serve --config webpack-dev-server.config.js",
10+
"build": "NODE_ENV=production webpack --config webpack-production.config.js"
1111
},
1212
"devDependencies": {
13-
"@ringcentral-integration/babel-settings": "^0.0.1",
13+
"@ringcentral-integration/babel-settings": "^0.1.0",
1414
"@ringcentral-integration/locale-loader": "^2.0.0",
1515
"@types/classnames": "^2.2.7",
1616
"@types/react-dom": "^17.0.11",
1717
"@types/react-redux": "^7.0.9",
1818
"@types/react-router": "^5.1.2",
1919
"autoprefixer": "^9.6.1",
20+
"assert": "^2.0.0",
2021
"babel-loader": "^8.2.2",
22+
"browserify": "^14.4.0",
23+
"browserify-zlib": "^0.2.0",
24+
"buffer": "^6.0.3",
2125
"copy-webpack-plugin": "^9.0.1",
2226
"css-loader": "^2.1.1",
27+
"crypto-browserify": "^3.12.0",
28+
"console-browserify": "^1.2.0",
29+
"constants-browserify": "^1.0.0",
2330
"dotenv": "^6.2.0",
31+
"domain-browser": "^4.22.0",
32+
"events": "^3.3.0",
2433
"file-loader": "^6.2.0",
25-
"sass": "^1.43.4",
34+
"https-browserify": "^1.0.0",
35+
"os-browserify": "^0.3.0",
36+
"path-browserify": "^1.0.1",
2637
"postcss-loader": "^3.0.0",
38+
"process": "^0.11.10",
39+
"punycode": "^2.1.1",
40+
"querystring-es3": "^0.2.1",
2741
"react-svg-loader": "^3.0.3",
42+
"sass": "^1.43.4",
2843
"sass-loader": "^7.1.0",
2944
"style-loader": "^0.23.1",
45+
"stream-browserify": "^3.0.0",
46+
"stream-http": "^3.2.0",
47+
"string_decoder": "^1.3.0",
48+
"string-replace-loader": "^3.0.3",
49+
"timers-browserify": "^2.0.12",
50+
"tty-browserify": "^0.0.1",
3051
"url-loader": "^4.1.1",
52+
"url": "^0.11.0",
53+
"util": "^0.12.4",
54+
"vm-browserify": "1.1.2",
3155
"webpack": "^5.58.1",
3256
"webpack-cli": "^4.9.0",
3357
"webpack-dev-server": "^4.3.1"
3458
},
3559
"dependencies": {
3660
"@rc-ex/core": "^0.10.5",
37-
"@ringcentral-integration/commons": "^0.13.0",
38-
"@ringcentral-integration/core": "^0.13.0",
39-
"@ringcentral-integration/i18n": "^2.0.1",
61+
"@ringcentral-integration/commons": "^0.13.3",
62+
"@ringcentral-integration/core": "^0.13.3",
63+
"@ringcentral-integration/i18n": "^2.1.1",
4064
"@ringcentral-integration/phone-number": "^1.0.2",
65+
"@ringcentral-integration/widgets": "^0.13.3",
4166
"@ringcentral/juno": "^1.12.6-beta.5910-6eeb3bdd",
4267
"@ringcentral/sdk": "^4.5.0",
4368
"@ringcentral/subscriptions": "^4.5.0",
4469
"classnames": "^2.2.5",
45-
"format-message": "^5.1.2",
70+
"format-message": "^6.2.3",
4671
"isomorphic-fetch": "^2.2.1",
4772
"normalize-css": "^2.3.1",
4873
"prop-types": "^15.7.2",
@@ -54,7 +79,6 @@
5479
"react-router-redux": "^4.0.7",
5580
"redux": "^4.0.4",
5681
"ringcentral-client": "^1.0.0-beta.2",
57-
"@ringcentral-integration/widgets": "^0.13.0",
5882
"styled-components": "^5.3.3"
5983
}
6084
}

packages/ringcentral-widgets-cli/templates/Project/src/containers/App/index.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ import PropTypes from 'prop-types';
33
import { Provider } from 'react-redux';
44
import { Router, Route } from 'react-router';
55

6-
import PhoneProvider from '@ringcentral-integration/widgets/lib/PhoneProvider';
7-
6+
import { PhoneProvider } from '@ringcentral-integration/widgets/lib/phoneContext';
87
import { RegionSettingsPage } from '@ringcentral-integration/widgets/containers/RegionSettingsPage';
98

109
import SettingsPage from '@ringcentral-integration/widgets/containers/SettingsPage';

packages/ringcentral-widgets-cli/templates/Project/src/modules/Phone/index.js

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,30 +7,30 @@ import { LocalForageStorage } from '@ringcentral-integration/commons/lib/LocalFo
77

88
import { Alert } from '@ringcentral-integration/commons/modules/Alert';
99
import { AlertUI } from '@ringcentral-integration/widgets/modules/AlertUI';
10-
import AccountInfo from '@ringcentral-integration/commons/modules/AccountInfo';
10+
import { AccountInfo } from '@ringcentral-integration/commons/modules/AccountInfoV2';
1111
import { AppFeatures } from '@ringcentral-integration/commons/modules/AppFeatures';
12-
import Auth from '@ringcentral-integration/commons/modules/Auth';
12+
import { Auth } from '@ringcentral-integration/commons/modules/AuthV2';
1313
import { Brand } from '@ringcentral-integration/commons/modules/Brand';
14-
import ConnectivityMonitor from '@ringcentral-integration/commons/modules/ConnectivityMonitor';
15-
import DateTimeFormat from '@ringcentral-integration/commons/modules/DateTimeFormat';
14+
import { ConnectivityMonitor } from '@ringcentral-integration/commons/modules/ConnectivityMonitorV2';
15+
import { DateTimeFormat } from '@ringcentral-integration/commons/modules/DateTimeFormatV2';
1616
import { DataFetcherV2 } from '@ringcentral-integration/commons/modules/DataFetcherV2';
17-
import DialingPlan from '@ringcentral-integration/commons/modules/DialingPlan';
18-
import Environment from '@ringcentral-integration/commons/modules/Environment';
17+
import { DialingPlan } from '@ringcentral-integration/commons/modules/DialingPlanV2';
18+
import { Environment } from '@ringcentral-integration/commons/modules/EnvironmentV2';
1919
import { ExtensionFeatures } from '@ringcentral-integration/commons/modules/ExtensionFeatures';
20-
import ExtensionInfo from '@ringcentral-integration/commons/modules/ExtensionInfo';
21-
import GlobalStorage from '@ringcentral-integration/commons/modules/GlobalStorage';
20+
import { ExtensionInfo } from '@ringcentral-integration/commons/modules/ExtensionInfoV2';
21+
import { GlobalStorage } from '@ringcentral-integration/commons/modules/GlobalStorageV2';
2222
import { Locale } from '@ringcentral-integration/commons/modules/Locale';
23-
import RateLimiter from '@ringcentral-integration/commons/modules/RateLimiter';
23+
import { RateLimiter } from '@ringcentral-integration/commons/modules/RateLimiterV2';
2424
import { RegionSettings } from '@ringcentral-integration/commons/modules/RegionSettings';
25-
import Storage from '@ringcentral-integration/commons/modules/Storage';
25+
import { Storage } from '@ringcentral-integration/commons/modules/StorageV2';
2626
import { SleepDetector } from '@ringcentral-integration/commons/modules/SleepDetectorV2';
27-
import Subscription from '@ringcentral-integration/commons/modules/Subscription';
27+
import { Subscription } from '@ringcentral-integration/commons/modules/SubscriptionV2';
2828
import { ConnectivityBadgeUI } from '@ringcentral-integration/widgets/modules/ConnectivityBadgeUI';
2929
import { ConnectivityManager } from '@ringcentral-integration/widgets/modules/ConnectivityManager';
3030
import { LoginUI } from '@ringcentral-integration/widgets/modules/LoginUI';
3131
import { OAuth } from '@ringcentral-integration/widgets/modules/OAuth';
3232
import { RegionSettingsUI } from '@ringcentral-integration/widgets/modules/RegionSettingsUI';
33-
import RouterInteraction from '@ringcentral-integration/widgets/modules/RouterInteraction';
33+
import { RouterInteraction } from '@ringcentral-integration/widgets/modules/RouterInteraction';
3434
import { SettingsUI } from '@ringcentral-integration/widgets/modules/SettingsUI';
3535

3636
// user Dependency Injection with decorator to create a phone class

packages/ringcentral-widgets-cli/templates/Project/webpack-dev-server.config.js

Lines changed: 52 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,57 @@ const config = {
2424
redirect: './src/redirect.js',
2525
},
2626
devServer: {
27-
contentBase: buildPath,
27+
static: buildPath,
2828
hot: true,
29-
inline: true,
3029
port: 8080,
3130
},
3231
devtool: 'eval-source-map',
3332
output: {
3433
path: buildPath,
3534
filename: '[name].js',
3635
},
36+
resolve: {
37+
// webpack < 5 used to include polyfills for node.js core modules by default.
38+
// This is no longer the case. Verify if you need this module and configure a polyfill for it.
39+
//
40+
// more doc: https://webpack.js.org/configuration/resolve/#resolvefallback
41+
//
42+
fallback: {
43+
crypto: require.resolve('crypto-browserify'),
44+
stream: require.resolve('stream-browserify'),
45+
vm: require.resolve('vm-browserify'),
46+
timers: require.resolve('timers-browserify'),
47+
process: require.resolve('process/browser'),
48+
assert: require.resolve('assert'),
49+
buffer: require.resolve('buffer'),
50+
console: require.resolve('console-browserify'),
51+
constants: require.resolve('constants-browserify'),
52+
domain: require.resolve('domain-browser'),
53+
events: require.resolve('events'),
54+
http: require.resolve('stream-http'),
55+
https: require.resolve('https-browserify'),
56+
os: require.resolve('os-browserify/browser'),
57+
path: require.resolve('path-browserify'),
58+
punycode: require.resolve('punycode'),
59+
querystring: require.resolve('querystring-es3'),
60+
string_decoder: require.resolve('string_decoder'),
61+
sys: require.resolve('util'),
62+
tty: require.resolve('tty-browserify'),
63+
url: require.resolve('url'),
64+
util: require.resolve('util'),
65+
zlib: require.resolve('browserify-zlib'),
66+
},
67+
extensions: ['.js', '.jsx', '.ts', '.tsx'],
68+
},
3769
plugins: [
3870
new webpack.HotModuleReplacementPlugin(),
3971
new webpack.NoEmitOnErrorsPlugin(),
72+
new webpack.ProvidePlugin({
73+
process: 'process/browser.js',
74+
Buffer: ['buffer', 'Buffer'],
75+
setImmediate: ['setimmediate', 'setImmedate'],
76+
clearImmediate: ['setimmediate', 'clearImmedate'],
77+
}),
4078
new webpack.DefinePlugin({
4179
'process.env': {
4280
NODE_ENV: JSON.stringify('development'),
@@ -83,14 +121,21 @@ const config = {
83121
},
84122
{
85123
test: /\.woff|\.woff2|.eot|\.ttf/,
86-
use:
87-
'url-loader?limit=15000&publicPath=./&name=fonts/[name]_[hash].[ext]',
124+
use: {
125+
loader: 'url-loader',
126+
options: {
127+
limit: 15000,
128+
name: 'fonts/[name]_[hash].[ext]',
129+
// TODO: it should be upgrade css-loader and update config
130+
esModule: false,
131+
},
132+
},
88133
},
89134
{
90135
test: /\.png|\.jpg|\.gif|\.svg/,
91-
exclude: /@ringcentral-integration(\/|\\)widgets(\/|\\)assets(\/|\\)images(\/|\\).+\.svg/,
92-
use:
93-
'url-loader?limit=20000&publicPath=./&name=images/[name]_[hash].[ext]',
136+
exclude:
137+
/@ringcentral-integration(\/|\\)widgets(\/|\\)assets(\/|\\)images(\/|\\).+\.svg/,
138+
use: 'url-loader?limit=20000&publicPath=./&name=images/[name]_[hash].[ext]',
94139
},
95140
{
96141
test: /\.sass|\.scss/,

packages/ringcentral-widgets-cli/templates/Project/webpack-production.config.js

Lines changed: 55 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,46 @@ const config = {
2828
path: buildPath,
2929
filename: '[name].js',
3030
},
31+
resolve: {
32+
// webpack < 5 used to include polyfills for node.js core modules by default.
33+
// This is no longer the case. Verify if you need this module and configure a polyfill for it.
34+
//
35+
// more doc: https://webpack.js.org/configuration/resolve/#resolvefallback
36+
//
37+
fallback: {
38+
crypto: require.resolve('crypto-browserify'),
39+
stream: require.resolve('stream-browserify'),
40+
vm: require.resolve('vm-browserify'),
41+
timers: require.resolve('timers-browserify'),
42+
process: require.resolve('process/browser'),
43+
assert: require.resolve('assert'),
44+
buffer: require.resolve('buffer'),
45+
console: require.resolve('console-browserify'),
46+
constants: require.resolve('constants-browserify'),
47+
domain: require.resolve('domain-browser'),
48+
events: require.resolve('events'),
49+
http: require.resolve('stream-http'),
50+
https: require.resolve('https-browserify'),
51+
os: require.resolve('os-browserify/browser'),
52+
path: require.resolve('path-browserify'),
53+
punycode: require.resolve('punycode'),
54+
querystring: require.resolve('querystring-es3'),
55+
string_decoder: require.resolve('string_decoder'),
56+
sys: require.resolve('util'),
57+
tty: require.resolve('tty-browserify'),
58+
url: require.resolve('url'),
59+
util: require.resolve('util'),
60+
zlib: require.resolve('browserify-zlib'),
61+
},
62+
extensions: ['.js', '.jsx', '.ts', '.tsx'],
63+
},
3164
plugins: [
65+
new webpack.ProvidePlugin({
66+
process: 'process/browser.js',
67+
Buffer: ['buffer', 'Buffer'],
68+
setImmediate: ['setimmediate', 'setImmedate'],
69+
clearImmediate: ['setimmediate', 'clearImmedate'],
70+
}),
3271
new webpack.DefinePlugin({
3372
'process.env': {
3473
NODE_ENV: JSON.stringify('production'),
@@ -81,18 +120,24 @@ const config = {
81120
},
82121
{
83122
test: /\.woff|\.woff2|.eot|\.ttf/,
84-
use: 'url-loader?limit=15000&publicPath=./&name=fonts/[name]_[hash].[ext]',
123+
// use:
124+
// 'url-loader?limit=15000&publicPath=./&name=fonts/[name]_[hash].[ext]',
125+
use: {
126+
loader: 'url-loader',
127+
options: {
128+
limit: 15000,
129+
name: 'fonts/[name]_[hash].[ext]',
130+
// TODO: it should be upgrade css-loader and update config
131+
esModule: false,
132+
},
133+
},
85134
},
86135
{
87136
test: /\.png|\.jpg|\.gif|\.svg/,
88137
exclude:
89-
/ringcentral-integration(\/|\\)widgets(\/|\\)assets(\/|\\)images(\/|\\).+\.svg/,
138+
/@ringcentral-integration(\/|\\)widgets(\/|\\)assets(\/|\\)images(\/|\\).+\.svg/,
90139
use: 'url-loader?limit=20000&publicPath=./&name=images/[name]_[hash].[ext]',
91140
},
92-
{
93-
test: /\.ogg$/,
94-
use: 'file-loader?publicPath=./&name=audio/[name]_[hash].[ext]',
95-
},
96141
{
97142
test: /\.sass|\.scss/,
98143
use: [
@@ -121,6 +166,10 @@ const config = {
121166
},
122167
],
123168
},
169+
{
170+
test: /\.ogg$/,
171+
use: 'file-loader?publicPath=./&name=audio/[name]_[hash].[ext]',
172+
},
124173
],
125174
},
126175
};

0 commit comments

Comments
 (0)