путь поиска пряжи + webpack - PullRequest
0 голосов
/ 25 января 2019

Я смотрю на проект, в котором есть файл package.json, содержащий следующую строку:

"scripts": {
    "clean": "rm -rf lib && rm -rf umd",
    "prebuild": "yarn clean",
    "build": "../../node_modules/typescript/bin/tsc",
    "build-production": "yarn build && TS_NODE_PROJECT=\"tsconfig.webpack.json\" webpack",
    "watch": "../../node_modules/typescript/bin/tsc -w",
    "test": "",
    "lint": "../../node_modules/.bin/tslint -c ../../tslint.json -p ./tsconfig.json"
  },
  "devDependencies": {
    "webpack": "^4.25.1",
    "webpack-cli": "^3.1.2"
  },

webpack не в моем пути, поэтому запустите webpack

$ webpack
-bash: /usr/bin/webpack: No such file or directory

Все же как-то, когда я запускаю "производство сборки пряжи" .. все, кажется, работает как ожидалось. В лице вы можете увидеть "Версия: WebPack 4.25.1" в выводе.

yarn build-production
yarn run v1.13.0
$ yarn build && TS_NODE_PROJECT="tsconfig.webpack.json" webpack
$ yarn clean
$ rm -rf lib && rm -rf umd
$ ../../node_modules/typescript/bin/tsc
Hash: 365eaed22ba7f6d609fc
Version: webpack 4.25.1
Time: 1289ms
Built at: 01/24/2019 5:03:35 PM
                              Asset       Size  Chunks             Chunk Names
                  ../lib/index.d.ts  268 bytes          [emitted]
eos-transit-scatter-provider.min.js    4.3 KiB       0  [emitted]  main
Entrypoint main = eos-transit-scatter-provider.min.js
[0] ./src/index.ts 6.6 KiB {0} [built]
[1] external "ScatterJS" 42 bytes {0} [built]
[2] external "ScatterEOS" 42 bytes {0} [built]
Done in 8.04s.

Что меня смущает, так это то, что я не понимаю, как скрипт npm может найти двоичный файл веб-пакета и использовать его. Когда очевидно, что если я выполню ту же команду в оболочке, она потерпит неудачу, потому что webpack не установлен в моем пути поиска.

$ yarn build && TS_NODE_PROJECT="tsconfig.webpack.json" webpack
yarn run v1.13.0
$ yarn clean
$ rm -rf lib && rm -rf umd
$ ../../node_modules/typescript/bin/tsc
Done in 2.93s.
-bash: /usr/bin/webpack: No such file or directory

Как скрипт npm находит этот двоичный файл webpack?

1 Ответ

0 голосов
/ 25 января 2019

A webpack двоичный файл установлен в ./node_modules/.bin/ относительно этого package.json. Сценарии npm запускаются с этим каталогом в их PATH, см .: https://docs.npmjs.com/misc/scripts#path

...