[英]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.