ΠΠ΅ Π·Π½Π°Ρ, ΡΠ²ΡΠ·Π°Π½ΠΎ Π»ΠΈ ΡΡΠΎ Ρ #4216, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Angular 4.4.4
, Π° ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° React
, ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΠΏΡΠ±Π»ΠΈΠΊΡΡ ΡΡΠΎ ΠΊΠ°ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΠΎΡΠ»Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Ρ ΠΌΠ΅Π½Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠ°:
__WEBPACK_IMPORTED_MODULE_2_moment__ is not a function
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ moment
"moment": "2.19.0",
"@types/moment": "2.13.0",
ΠΠΎΠ΄, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΎΡΠΈΠ±ΠΊΡ, Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡ:
import * as moment from 'moment';
...
if (moment().year() !== this.mainData.activeYear)
...
+1 - Π’Π° ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ Angular 4
Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅. ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Angular ΠΈΠ»ΠΈ React. ΠΡΠΎ ΠΌΠΎΡ ΠΎΡΠΈΠ±ΠΊΠ° Π²Π΅Π±-ΠΏΠ°ΠΊΠ΅ΡΠ°:
WARNING in ./~/moment/src/lib/locale/locales.js
Module not found: Error: Can't resolve './locale' in '/data/jenkins/workspace/project/node_modules/moment/src/lib/locale'
./~/moment/src/lib/locale/locales.js 65:16-60
./~/moment/src/lib/locale/locale.js
./~/moment/src/moment.js
./script.js
Π’Π° ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ vuejs ΠΈ webpack.
Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π·Π΄Π΅ΡΡ Ρ Π²Π΅Π±-ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ, Ρ
ΠΎΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΡΠ·Π²Π°Π½Π° ΡΠ°ΡΠΎΠ²ΡΠΌ ΠΏΠΎΡΡΠΎΠΌ ΠΌΠΎΠΌΠ΅Π½ΡΠ°. ΠΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Ρ "moment": "^2.18.1"
Π½Π° "moment": "~2.18.1"
ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Π΄ΠΎ Π²Π΅ΡΡΠΈΠΈ 2.19.0
WARNING in ./~/[email protected]@moment/src/lib/locale/locales.js
Module not found: Error: Can't resolve './locale' in '/Users/XXX/code/gitlab/web-editor/node_modules/[email protected]@moment/src/lib/locale'
@ ./~/[email protected]@moment/src/lib/locale/locales.js 65:16-60
@ ./~/[email protected]@moment/src/lib/locale/locale.js
@ ./~/[email protected]@moment/src/moment.js
@ ./~/[email protected]@antd/lib/calendar/index.js
@ ./~/[email protected]@antd/lib/index.js
@ dll lib
Π’Π° ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ 2.19.0
Π’Π° ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ 2.19.0
ΠΡΠ° Π²Π΅ΡΡΠΈΡ (2.19.0 Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½Π°)
Π½Π° "ΠΌΠΎΠΌΠ΅Π½Ρ" Π°Ρ
Π°Ρ
Π°Ρ
, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ 2.18.1
"ΠΌΠΎΠΌΠ΅Π½Ρ": "~2.18.1"
Π’Π° ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π΄Π΅ΡΡ π’ ΠΡ Π±ΡΠ΄Π΅ΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π²Π΅ΡΡΠΈΠΈ 2.18, ΠΏΠΎΠΊΠ° ΠΎΠ½Π° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ΅ΡΠ΅Π½Π°.
ΠΠ΄Π΅ΡΡ ΡΠ° ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°...
ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΠΎΡΠΈΠ±ΠΊΡ Π²Π΅Π±-ΠΏΠ°ΠΊΠ΅ΡΠ°
WARNING in ./node_modules/moment/src/lib/locale/locales.js
Module not found: Error: Can't resolve './locale' in 'blahblahblah/node_modules/moment/src/lib/locale'
@ ./node_modules/moment/src/lib/locale/locales.js 65:16-60
@ ./node_modules/moment/src/lib/locale/locale.js
@ ./node_modules/moment/src/moment.js
@ ./src/client/components/ArticlesGrid/index.js
@ ./src/client/containers/StuffPage/index.js
@ ./src/client/routes.jsx
@ ./src/client/index.js
@ multi (webpack)-dev-server/client?http://0.0.0.0:8050 webpack/hot/dev-server babel-polyfill ./src/client/index.js
@mymtw - ΠΊΠ°ΠΊ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ, ΠΌΡ Π½Π΅ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅ΠΌ ΡΡΠ³Π°ΡΡΡΡ Π² ΡΠΎΡΠΌΠ°Ρ , ΠΏΠΎΡΡΠΎΠΌΡ Π²Π°Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π±ΡΠ» ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π²ΠΎΠ·Π΄Π΅ΡΠΆΠΈΡΠ΅ΡΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ.
ΠΠΎΠ»ΡΡΠΈΠ» ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΄ΠΎ 2.19...
node_modules/webpack/lib/IgnorePlugin.js:20
(!contextRegExp || contextRegExp.test(result.context))) {
^
TypeError: contextRegExp.test is not a function
Π ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ ignore, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ Π»ΠΎΠΊΠ°Π»ΠΈ Π² ΠΌΠΎΠ΅ΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ webpack:
new webpack.IgnorePlugin(/^\.\/locale$/, [/moment$/])
ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Π²Π΅ΡΡΠΈΠΈ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π² package.json
ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ:
"moment": "2.18.0"
ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ Π²Π°ΡΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ ΠΌΠΎΠΌΠ΅Π½ΡΠ° (2.19.0), Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ (Π·Π°ΠΏΡΡΡΠΈΡΠ΅ find ./node_modules/*/node_modules -iname moment
, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π΄ΡΡΠ³ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ).
ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π½Π΅ΡΠ½ΠΈΠ΅ Π²Π΅Π±-ΠΏΠ°ΠΊΠ΅ΡΡ:
+ externals: {
+ moment: 'moment',
+ },
<script src="https://momentjs.com/downloads/moment.min.js"></script>
ΠΠΎΠ½ΠΈΠΆΠ΅Π½ Π΄ΠΎ ~2.18.0
, ΡΡΠΎ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±ΠΎΠΉΡΠΈ ΡΡΠΎ.
ΠΠΎΡ ΡΠ°Π³ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π»Ρ ΠΌΠ΅Π½Ρ. Π― ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ Ρ Π²Π°Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ create-react-app
:
> create-react-app my-app
> cd my-app
> # Prove the app it working correctly
> npm run start
> npm install moment
ΠΠ±Π½ΠΎΠ²ΠΈΡΠ΅ src/app.js
, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
import '.App.css';
+ import moment from 'moment'
class App extends Component {
</p>
+<p>
+ Today is {moment().format()}
+</p>
</div>
ΠΏΠΎΡΠΎΠΌ
> npm run start
ΠΠΆΠΈΠ΄Π°ΠΉΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π²Π΅Π±-ΡΠ°ΠΉΡΠ°.
Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ±ΠΎΠΉ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ: Π½Π΅ ΡΠ΄Π°Π΅ΡΡΡ ΡΡΡΡΠ°Π½ΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΡ Β«./localeΒ».
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ, ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
> npm install [email protected]
ΠΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ. Π― ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ» ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π½Π°Π΄ ΠΊΠΎΡΠΎΡΡΠΌ Ρ ΡΠ°Π±ΠΎΡΠ°Ρ Π΄Π»Ρ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ, ΠΈ Π·Π°ΠΏΡΡΡΠΈΠ» webpack. ΠΠ°ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΌΠΎΠ³Ρ ΡΡΠ΄ΠΈΡΡ, Ρ ΠΌΠ΅Π½Ρ ΡΠ°ΠΌΠ°Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΈΠ· Π²ΡΠ΅Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π²Π΅Π±-ΠΏΠ°ΠΊΠ΅ΡΠ° (ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ, ΠΈ Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΠ» ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅), ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ 2.19.0, ΠΈ Π²ΡΠ΅ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
ΠΠ°Π»Π΅Π΅ Ρ ΠΏΠΎΠΏΡΠΎΠ±ΡΡ ΡΡΠΎΡ ΠΏΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ-ΡΠ΅Π°ΠΊΡΠΈΠΈ-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠΎ Π±ΡΠ»ΠΎ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΡΠ°ΡΡΠ»ΠΈΠ²ΠΎΠ΅ ΡΡΡΠΎ Ρ ΡΡΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ!
Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Ρ ΡΡΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ.
npm install --save [email protected]
ΠΡΠΎ ΡΡΡΡΠ°Π½ΡΠ΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π° Π²ΡΠ΅ΠΌΡ. 2.19.0 Π²ΡΠ΄Π°Π²Π°Π» ΡΡ ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΡ ΠΎΠΊΠΎΠ»ΠΎ 2 ΡΠ°ΡΠΎΠ² Π½Π°Π·Π°Π΄.
ΠΠΎΠ½ΠΈΠ·ΠΈΠ» Π΄ΠΎ Π²Π΅ΡΡΠΈΠΈ 2.18.1 ΠΈ Π²ΡΠ΅ Π·Π°ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ.
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡ ΡΡΠΎΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ.
2.19.0 ΡΠ»ΠΎΠΌΠ°Π» Π½Π°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠ±ΠΎΡΠΊΡ :(. ΠΠΎΠ·Π²ΡΠ°Ρ ΠΊ 2.18.1, ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ.
ΠΠ°ΠΊΡΡΡΠΈΠ΅ ΠΊΠ°ΠΊ Π΄ΡΠ±Π»ΠΈΠΊΠ°Ρ #4216 - ΠΎΡΡΠ»Π΅Π΄ΠΈΡΡ ΡΠ°ΠΌ.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅. ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Angular ΠΈΠ»ΠΈ React. ΠΡΠΎ ΠΌΠΎΡ ΠΎΡΠΈΠ±ΠΊΠ° Π²Π΅Π±-ΠΏΠ°ΠΊΠ΅ΡΠ°: