Почему меняется пространство имен, когда я использую npm для установки lib? - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь использовать 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"
        ]
    }
}

делает кто-нибудьзнаете, что делает это / почему это происходит?Мои предположения о веб-пакете не убеждают меня, потому что он не доходит до цели его использования.

1 Ответ

0 голосов
/ 03 апреля 2019

Я предполагаю, что вы пытаетесь запустить пакет npm (который часто является libs для backend) в интерфейсной части приложения.Это объясняет, почему window, который является глобальным объектом в браузере, изменяется после установки на global, который является глобальным объектом в Node.JS (бэкэнд).

Когда я смотрю на фиктивную страницу, я вижупрямое использование интерфейса (без установки npm):

<script src="whammy.js"></script>

Таким образом, вы можете загрузить файл напрямую и использовать его на своем сайте следующим образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...