webpack应当如何传递自定义参数?

1、想要达到的效果
package中script配置如下:

"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js"

现在需要达成的效果是运行

npm run dev <some code>

获得自定义参数
例如:

npm run dev --name test

在代码中获得test


2、进行过的尝试

  • 安装cross-env
  • 使用--key value进行传参数 如下
npm run dev --name test
  • 使用env作为前缀传参数
npm run dev --env.name test

以上几种方式中我都拿到了test这个值但是会报错

报错如下

clipboard.png


3、猜测与疑问
看这个报错我认为原因出在了 使用--方式传参数时识别了传递的key【name】 但是没有把demo识别为前面key的值才会有这样的报错
能不能把参数直接传递给环境而不是webpack-dev-server是不是可以避免这个问题呢
但是目前已经查了很多资料都说--可以传参数 后面跟着的是值
为什么会出现这样的报错
该怎么解决呢?

阅读 17k
4 个回答

可以用环境变量,需要webpack.DefinePlugin插件的支持

可以这么写:
npm run dev -- name=test

然后在 process.argv 里能拿到 name=test,这样就可以做后续工作了。这种方式是 npm 推荐的,是为了分开 npm 自带的命令和用户自定义命令,用起来其实不是那么直观,-- 很容易迷惑新手。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题