Я смотрю на проект, в котором есть файл 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?