簡體   English   中英

如何在 .bablerc 中使用的 package.json 中設置 env

[英]How to set env in package.json which is used within .bablerc

我試圖在運行 webpack 之前將 Jest 測試作為腳本的一部分運行,就像這樣。

npm run test
webpack --progress --profile --watch --mode development

Jest 只適用於編譯后的代碼,所以我將我的 .babelrc 設置為以下內容,這有效,但是然后它在 webpack 中轉譯了我不想要的所有代碼,在開發模式下我想不轉譯 JavaScript,所以我可以使用它而不會被混淆。

{
   "presets": [ "@babel/preset-env" ]
}

相反,我想通過調用“npm run test”來運行 Jest,然后我可以只指定該腳本轉譯代碼,然后 webpack 不轉譯就運行,我希望在我的 .babelrc 文件中有這樣的東西

{
    "env": {
      "test": {
        "presets": [ "@babel/preset-env" ]
      }
    }
}

然后在我的 package.json 中,我可以將 env 設置為 test ,然后將單獨留下 webpack。

"scripts": {
  "test": "SET env=test&& jest --config jest.config.js"
}

使用此設置,當“npm run test”運行時,我仍然會收到以下消息,表明未命中 babelrc 文件。

Jest 遇到意外標記 這通常意味着您正在嘗試導入 Jest 無法解析的文件,例如它不是普通的 JavaScript。

任何人都可以幫忙嗎?

結果我的測試在 .babelrc 文件中沒問題

{
    "env": {
      "test": {
        "presets": [ "@babel/preset-env" ]
      }
    }
}

我的 package.json 中所需的腳本是這樣的,沒有設置任何節點環境

"scripts": {
  "test": "jest --config jest.config.js"
}

實際上是我的 webpack 腳本沒有正確配置,我需要在最后添加 '--env.NODE_ENV=development'

webpack --progress --profile --watch --mode development --env.NODE_ENV=development

然后可以在我的 webpack.config 文件中檢查。

module.exports = (env) => {
    const isDevelopment = env && env.NODE_ENV === 'development';
    ...

然后在我的 isDevelopment 規則測試中

rules: [{
    test: /\.js$/,
    exclude: /(node_modules|bower_components)/,
    use: {
        loader: 'babel-loader',
        options: isDevelopment ? {} : { presets: ['@babel/preset-env'] }
    }
},

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM