Typescript + Webpack + Node和process.env为空

时间:2019-04-27 09:57:40

标签: node.js typescript webpack

我试图先使用TypeScript然后使用Webpack编译我的应用程序。我需要这个,因为我的服务器必须是单个js文件。

您可以在此处下载我的问题项目:

https://s3-ap-southeast-2.amazonaws.com/test-bucket-alsh/untitled+folder.zip

index.ts

d = dict.fromkeys(df.columns.difference(['perf_date','rev']), 'first')
df1 = df.groupby('perf_date', as_index=False).agg(d)
s = df.groupby('perf_date')['rev'].nth(2)
df = df1.join(s, on='perf_date')
print (df)
    perf_date  clicks  conv   pull_date    rev
0  2019-01-21      56     9  2019-01-28    NaN
1  2019-01-22      56    10  2019-01-28    NaN
2  2019-01-23      59    13  2019-01-28  95.31

webpack.config.js

console.log(process)
console.log(process.env)

tsconfig.json

module.exports = {
    entry: path.join(__dirname, '/index.ts'),
    mode,
    node: {
        console: true,
        global: true,
        process: true,
        __filename: true,
        __dirname: true,
        Buffer: true,
        setImmediate: true
    },
    output: {
        filename: 'index.js',
        path: __dirname
    },
    module: {
        rules: [
            {
                test: /\.ts$/,
                use: ['ts-loader']
            }
        ]
    }
}

{ "compilerOptions": { "target": "es5", "module": "commonjs", "moduleResolution": "node", "baseUrl": "./", "outDir": "./dist/", "sourceMap": true, "esModuleInterop": true, "lib": [ "es2016" ], "types": [ "node" ] }, "exclude": [ "node_modules" ] }

结果

npx webpack && node index.js

2 个答案:

答案 0 :(得分:0)

您必须使用npm包将环境变量注入项目中。 dotenv是最受欢迎的一种。所有您需要做的,在项目的根目录(即package.json所在的目录)中,创建.env文件,并添加如下这样的env变量:

DB_URL=DB_URI=mongodb://127.0.0.1:27017/myDb // without strings

然后在package.json中使用脚本注入变量:

      "dev": "nodemon --watch dist --exec  \"node -r dotenv/config dist/bundle.js\"",

答案 1 :(得分:-1)

我重新阅读了标题,我想您的问题是process.env为空。我对吗?在这种情况下,这就是添加环境变量的方式。

sizeof(char)

如果这不是您的问题,请您指定预期的结果。

此外,您还可以将环境变量存储在.env文件中,该文件必须放在项目的根目录中。要访问它们,您可以使用dotenv npm软件包。