‘NODE_PATH’ 不是内部或外部命令,也不是可运行的程序批处理文件(webpack)

最近在学习webpack,当配置多环境webpack时,生产环境使用webpack.production.config.js,并 在 package.json中配置命令如下:

  1. "scripts": {
  2. "start": "webpack-dev-server --inline --hot --progress",
  3. "build": "NODE_ENV=production webpack --config ./webpack.production.config.js --progress"
  4. }

当执行命令:
npm run build
抛出错误:

  1. NODE_PATH 不是内部或外部命令,也不是可运行的程序批处理文件

解决办法:
谷歌找了一下原因,说是这个命令在Windows下不能直接使用,找到一篇文章,说是可以下载一个 ‘across-env‘ 包,然后就能正常使用了(原博客文章找不到了o(╯□╰)o,这里深感抱歉),原博文大致教程如下:

安装 across-env:npm install across-env –save-dev 在 NODE_ENV=Environment 前面添加cross-env

可是我在使用npm安装失败,然后使用淘镜像宝的cnpm安装还是一直提示安装失败。

  1. E:\projects\demo>npm install across-env save-dev
  2. npm WARN package.json webpack@1.0.0 No repository field.
  3. npm WARN package.json webpack@1.0.0 No bin file found at move
  4. npm ERR! Windows_NT 10.0.10586
  5. npm ERR! argv D:\\Program Files\\nodejs\\node.exe D:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js ins
  6. tall across-env “–save-dev
  7. npm ERR! node v4.4.2
  8. npm ERR! npm v2.15.0
  9. npm ERR! code E404
  10. npm ERR! 404 Registry returned 404 for GET on https://registry.npm.taobao.org/across-env
  11. npm ERR! 404
  12. npm ERR! 404 across-env is not in the npm registry.
  13. npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
  14. npm ERR! 404 It was specified as a dependency of webpack
  15. npm ERR! 404
  16. npm ERR! 404 Note that you can also install from a
  17. npm ERR! 404 tarball, folder, http url, or git url.
  18. npm ERR! Please include the following file with any support request:
  19. npm ERR! E:\projects\demo\npm-debug.log

这里不知道是不是我npm配置的原因,有待验证。
既然这个方法行不通就只有看看别的了。最后找到一个方法是在package.json中配置如下::

  1. "build": set NODE_ENV=production webpack --config ./webpack.production.config.js --progress

然后就迫不及待的运行了一下

  1. npm run build

然而始料不及,这次没有跑错,但是却只执行了这个,也木有打包什么的:

  1. webpack@1.0.0 build E:\projects\demo
  2. > set NODE_ENV=production webpack config ./webpack.production.config.js progress

最后看了半天才发现,自己太蠢了。也只能怪自己太粗心了,命令之间忘了加 ‘&&‘ 连接符

  1. webpack@1.0.0 build E:\projects\demo
  2. > set NODE_ENV=production && webpack config ./webpack.production.config.js progress

这时再运行
npm run build
已经能够顺利打包了:

  1. > webpack@1.0.0 build E:\projects\video
  2. > set NODE_ENV=production && webpack config ./webpack.production.config.js progress
  3. Hash: ea6092115d850da126bb
  4. Version: webpack 1.13.1
  5. Time: 32544ms

至于在我npm start的时候看到那一串不停’奔跑’的命令行时,感觉这命令行显示的方式太丑了,滚那么快,我咋知道在干什么啊,就寻思着有木有美化的方法,Google了一下还真有,哈哈,下一篇文章我就来说说这个如何美化webpack编译时的命令行