我使用Webpacker v2運行Rails v5。到目前爲止,一切都很順利,但我遇到了一個問題:如何將Rails助手暴露給我的TypeScript。將Rails Env公開給Webpacker
我知道Webpacker附帶軌-ERB-裝載機,所以我期待,我會能夠添加.erb
到打字稿文件,然後導入其他地方文件:
// app/javascript/utils/rails.ts.erb
export const env = "<%= Rails.env %>"
export function isEnv(envName: string) {
return env == envName
}
// app/javascript/packs/application.ts
import { env } from "../utils/rails"
不過的WebPack能「找不到了‘軌道’文件,即使我修改打字稿裝載機包括ERB文件:
module.exports = {
test: /.ts(\.erb)?$/,
loader: 'ts-loader'
}
我看到的是:
error TS2307: Cannot find module '../utils/rails'.
將Rails助手和變量暴露給我的JavaScript的最佳方式是什麼?
你到什麼......但Web客戶端無法訪問'process.env'(VM265:1 Uncaught ReferenceError:未定義進程)也許有一些方法可以對其進行預處理? – fny
你說的webpacker,所以我假設你在談論nodejs。如果是這種情況,請更新您的webpack配置以使用插件'DefinePlugin'(https://gist.github.com/haf/f671f1113d2c5dead5a7#file-gistfile1-txt-L109-L113),像'new webpack.DefinePlugin ({「process.env」:{RAILS_ENV:process.env.RAILS_ENV}})'你將在客戶端獲得一個'process.env.RAILS_ENV' –
完美!你能爲後人的緣故更新你的答案嗎? – fny