所以当我在本地安装这些包时,它们可以工作,但当全局安装(并在本地删除(
npm i babel-cli -g
npm i -g babel-preset-es2015
npm i -g babel-preset-es2015-node
该标志似乎没有将es2016节点设置为在全局包列表中查找。不管怎样,都会出现以下错误:
npm运行启动myfile.js
babel-node --presets es2015-node -- bin/myScript.js "myfile.js"
/usr/local/Cellar/node/6.1.0/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/options/option-manager.js:395
throw new Error("Couldn't find preset " + (0, _stringify2.default)(val) + " relative to directory " + (0, _stringify2.default)(dirname));
^
Error: Couldn't find preset "es2015-node" relative to directory "/Users/user/project/bin"
at /usr/local/Cellar/node/6.1.0/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/options/option-manager.js:395:17
at Array.map (native)
at OptionManager.resolvePresets (/usr/local/Cellar/node/6.1.0/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/options/option-manager.js:387:20)
at OptionManager.mergePresets (/usr/local/Cellar/node/6.1.0/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/options/option-manager.js:370:10)
npm ERR! Darwin 14.5.0
npm ERR! argv "/usr/local/Cellar/node/6.1.0/bin/node" "/usr/local/bin/npm" "run" "start" "myfile.js"
npm ERR! node v6.1.0
npm ERR! npm v3.7.3
npm ERR! code ELIFECYCLE
npm ERR! project@0.0.0 start: `babel-node --presets es2015-node -- bin/myScript.js "myfile.js"`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the project@0.0.0 start script 'babel-node --presets es2015-node -- bin/myScript.js "myfile.js"'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the project package,
错误消息中有提示:
找不到相对于目录"/Users/user/project/bin"的预设"es2015节点">
本地安装预设,并使用--save
标志将其保存为package.json
中的依赖项:
npm install --save babel-preset-es2015-node babel-preset-es2015
巴贝尔的明智之举是只在本地查找预设。通过这种方式,您必须通过描述其在package.json
中运行所需的必要依赖关系来生成一个可移植的模块,然后用户通过npm install
安装该模块。
npm update
为我解决了这个问题。