我是否可以仅为NPM包中的安装步骤安装devDependencies?

时间:2018-01-09 14:18:56

标签: javascript node.js npm

我有一个生活在GitHub上的NPM包。由于它使用现代ES,我将其作为install脚本的一部分进行分析:

...
"license": "MIT",
"scripts": {
  "install": "mkdir -p lib && babel src/index.js -o lib/index.js",
  "test": "jest src"
},
"dependencies": {
...

这需要Babel,它位于devDependencies

"devDependencies": {
  "@babel/cli": "^7.0.0-beta.37",
  "@babel/core": "^7.0.0-beta.37",
  "@babel/node": "^7.0.0-beta.37",
  "@babel/preset-env": "^7.0.0-beta.37"
}

Babel不需要使用该包,只需要构建它。

但是,运行devDependencies脚本时,NPM不会安装install。这会导致install失败:

$ npm install git+ssh://git@github.com:user/repo.git 
Error: Couldn't find preset "@babel/preset-env" relative to directory 
"/Users/User/Documents/js/test/node_modules/mylib"
...

我可以移动devDependencies中的dependencies,但这会使包裹膨胀。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

  

但是,运行安装脚本时,NPM不会安装devDependencies。

这是不对的。 npm install将安装dependenciesdevDependencies

仅安装dependencies,您需要在安装时传递--production

运行npm install @babel/preset-env --save-dev重新安装pkg,然后重试。

github

报告的类似问题