• 使用cross-env解决跨平台设置NODE_ENV的问题


    在搭建公司新的前端工程的架构中,需要在在package.jsonscripts标签下配置一系列命令,如下所示:

    "scripts": {
        "clear": "rm -rf build&& mkdir build",
        "start": "npm run clear&& NODE_ENV=development webpack-dev-server --host 0.0.0.0 --devtool eval --progress --color --profile",
        "deploy": "npm run pre&& npm run clear&& NODE_ENV=production webpack -p --progress"
      },

    上面配置中的的&&最开始使用的是;,后来发现;在windows环境中无法正常运行,于是改成了*unix和windows都兼容的&&。但是公司的部分使用windows的同事在运行npm start的时候,依然会报错:

    'NODE_ENV' 不是内部或外部命令,也不是可运行的程序
    或批处理文件。
    
    npm ERR! Windows_NT 6.1.7601
    npm ERR! argv "D:\nodejs\node.exe" "D:\nodejs\node_modules\npm\bin\npm-cli.js" "start"
    npm ERR! node v4.0.0-rc.5
    npm ERR! npm  v2.14.2
    npm ERR! code ELIFECYCLE
    npm ERR! yy-ydh-web@1.0.7 start: `npm run clear&& NODE_ENV=development && webpack-dev-server --host 0.0.0.0 --devtool ev
    al --progress --color --profile`
    npm ERR! Exit status 1
    npm ERR!
    npm ERR! Failed at the yy-ydh-web@1.0.7 start script 'npm run clear&& NODE_ENV=development && webpack-dev-server --host
    0.0.0.0 --devtool eval --progress --color --profile'.
    npm ERR! This is most likely a problem with the yy-ydh-web package,
    npm ERR! not with npm itself.
    npm ERR! Tell the author that this fails on your system:
    npm ERR!     npm run clear&& NODE_ENV=development && webpack-dev-server --host 0.0.0.0 --devtool eval --progress --color
     --profile
    npm ERR! You can get their info via:
    npm ERR!     npm owner ls yy-ydh-web
    npm ERR! There is likely additional logging output above.
    
    npm ERR! Please include the following file with any support request:
    npm ERR!     D:workspace
    ode_modulesyy-ydh-webnpm-debug.log

    简单来说,就是windows不支持NODE_ENV=development的设置方式。

    但是,又不想放弃这样简单方便的方式,于是只好求助于Google了。

    解决方式

    功夫不负有心人,在万能的google上,我找到了解决方法:cross-env
    这个迷你的包能够提供一个设置环境变量的scripts,让你能够以unix方式设置环境变量,然后在windows上也能兼容运行。

    使用方法:

    • 安装across-env:npm install cross-env --save-dev

    • NODE_ENV=xxxxxxx前面添加cross-env就可以了。

    set NODE_ENV=development && webpack --config webpack.config.dev.js

    也可以实现一样的效果

    转:https://blog.csdn.net/z69183787/article/details/54138818

  • 相关阅读:
    Spring Boot入门教程1、使用Spring Boot构建第一个Web应用程序
    单点登录(SSO)的设计
    .NET Core快速入门教程 5、使用VS Code进行C#代码调试的技巧
    .NET Core快速入门教程 4、使用VS Code开发.NET Core控制台应用程序
    .NET Core快速入门教程 3、我的第一个.NET Core App (CentOS篇)
    .NET Core快速入门教程 2、我的第一个.NET Core App(Windows篇)
    .NET Core快速入门教程 1、开篇:说说.NET Core的那些事儿
    JAVA的8种基本数据类型
    JVM
    在coffeescript中声明和屏蔽模块变量
  • 原文地址:https://www.cnblogs.com/lgjc/p/8691802.html
Copyright © 2020-2023  润新知