#javascript #npm #webpack
#javascript #npm #webpack
Вопрос:
Я пытаюсь использовать whammy.js в проекте. Первая строка исходного кода гласит
window.Whammy = (function(){
но когда я запускаю npm i и смотрю в node_modules, я вижу
global.Whammy = (function(){
https://github.com/antimatter15/whammy/blob/master/whammy.js
{
...
"dependencies": {
"cordova": "^9.0.0",
"react": "^16.8.5",
"react-redux": "^5.0.6",
"redux": "^4.0.1",
"redux-actions": "^2.2.1",
"redux-thunk": "^2.2.0",
"whammy": "0.0.1"
},
"devDependencies": {
"@babel/core": "^7.4.0",
"@babel/preset-env": "^7.4.2",
"@babel/preset-react": "^7.0.0",
"babel-loader": "^8.0.5",
"copy-webpack-plugin": "^5.0.2",
"cordova-browser": "^6.0.0",
"del": "^4.0.0",
"enzyme": "^3.9.0",
"enzyme-adapter-react-16": "^1.11.2",
"enzyme-to-json": "^3.3.5",
"gulp": "^4.0.0",
"gulp-cli": "^2.0.1",
"gulp-jest": "^4.0.2",
"gulp-run": "^1.7.1",
"gulp-sass": "^4.0.2",
"jest-cli": "^24.5.0",
"jest-dom": "^3.1.3",
"node-sass": "^4.11.0",
"react-dom": "^16.8.5",
"react-testing-library": "^6.0.2",
"webpack": "^4.29.6",
"webpack-cli": "^3.3.0",
"webpack-stream": "^5.2.1"
},
"cordova": {
"plugins": {
"cordova-plugin-android-permissions": {},
"cordova-plugin-crosswalk-webview": {
"XWALK_VERSION": "21 ",
"XWALK_LITEVERSION": "xwalk_core_library_canary:17 ",
"XWALK_COMMANDLINE": "--disable-pull-to-refresh-effect",
"XWALK_MODE": "embedded",
"XWALK_MULTIPLEAPK": "true"
},
"cordova-plugin-geolocation": {},
"cordova-plugin-whitelist": {}
},
"platforms": [
"browser"
]
},
"jest": {
"verbose": true,
"globals": {
"cordova": {}
},
"collectCoverageFrom": [
"source/**/*.{js,jsx,ts,tsx}",
"!<rootDir>/node_modules/"
],
"coverageThreshold": {
"global": {
"branches": 90,
"functions": 90,
"lines": 90,
"statements": 90
}
},
"coverageReporters": [
"text"
],
"snapshotSerializers": [
"enzyme-to-json/serializer"
]
}
}
кто-нибудь знает, что это делает / почему это происходит?
Мои догадки о webpack меня не убеждают, потому что дело не доходит до его использования.
Комментарии:
1. Не могли бы вы более четко объяснить, какое поведение ожидается или что именно вам непонятно? Изменение с
window
наglobal
объект или содержимоеpackage.json file
?2. этот npm загружает файл в том виде, в каком его опубликовал автор
Ответ №1:
Я предполагаю, что вы пытаетесь запустить пакет npm (которые часто являются библиотеками для серверной части) во внешней части приложения. Это объясняет, почему window
, который является глобальным объектом в браузере, изменяется после установки на global
, который является глобальным объектом в Node.JS (серверная часть).
Когда я смотрю на страницу whammy, я вижу прямое использование интерфейса (без установки npm):
<script src="whammy.js"></script>
Таким образом, вы, вероятно, можете загрузить файл напрямую и использовать его на своем сайте таким образом.
Комментарии:
1.
npm i
является ли ярлык дляnpm install
2. Я почти дошел до того, что просто поместил файл в свой репозиторий. Я не вижу никаких признаков предстоящих обновлений для отслеживания прямо сейчас… но не понимать этого разочаровывает.
3. Вы проверили страницу Whamy на GitHub ? Может быть, это поможет.
4. да, но я не могу понять, почему изменился исходный код, по сути, в этом случае npm — это просто средство выполнения задач для git, поэтому нет причин что-либо менять, я уверен, что я что-то сделал, но пока я не вижу, что.