在webpack的js文件中导入moment.js
在我的项目中,我使用webpack和npm。 我安装了moment.js: npm install moment
。 然后我想在我的app.js文件中导入它: import moment from "moment"
。
但它不起作用。 我得到: 无法解决的时刻…
我试着let moment = require('moment');
但我得到同样的错误。
但我可以在我的webpack.config.js文件没有错误要求。
我的app.js文件位于/myapp/frontend/app.js
我的webpack.config.js文件位于: /myapp/webpack.config.js
所以,请解释为什么我不能在我的app.js中需要时刻,我该怎么做?
我的configuration文件:
const webpack = require("webpack"); const NODE_ENV = process.env.NODE_ENV || "development" const path = require('path'); //example of successfull importing let moment = require('moment'); console.log(moment(new Date())); module.exports = { context: __dirname + "/frontend", entry: { app:"./app" }, output: { path: path.resolve(__dirname,"./public/js"), publicPath:"/public/js/",//public path in internet filename: "build.js" }, watch: NODE_ENV == "development", watchOptions:{ aggregateTimeout:100//default = 300 }, devtool: NODE_ENV == "development"?"cheap-inline-module-source-map":"cheap-source-map", //cheap-inline-module-source-map - to see sources in build.js //eval - fastest resolve:{ modules: ['node-modules'], extensions:['.js'] }, module:{ loaders:[{ test: /\.js$/, loader:"babel-loader?presets[]=es2015", exclude: /node_modules/ }] } }; if(NODE_ENV == "production"){ module.exports.plugins.push( new webpack.optimize.UglifyJsPlugin({ compress:{ warnings:false, unsafe:true, drop_console:true } }) ); }
这是我的树结构没有node_modules文件夹:
解决问题 :问题出在我的configuration上:
resolve:{ modules: ['node-modules'], extensions:['.js'] },
有node-modules
是错误的,必须是node_modules
。 简单的错字
不知道更多关于你的文件结构,很难确定为什么,但问题可能是你的webpackconfiguration没有find你的node_modules中的时刻模块。
作为一个testing,运行以下内容:
//webpack.js const path = require('path'); module.exports = { entry: path.join(__dirname, '..', 'public', 'js', 'index.js'), output: { filename: 'app.js', path: path.resolve(__dirname, '..', 'public', 'dist'), }, };
然后用时刻和jquery通过npm install --save jquery moment
,我做了一个index.js文件:
import $ from jquery; import moment from moment; const m = moment();
包含在HTML页面中时没有生成错误和运行时错误。 首先尝试开始,然后从你的webpackconfiguration上build立起来。 另外,我不确定webpack是否对package.json执行了任何操作,但是我注意到你并没有发出信号–save选项。 这是一个很好的习惯。
- 将MongoDB / ExpressJS查询存储到数组中并显示到HTML表中
- 构成koaasynchronous函数中间件的错误
- webRTC HTML5白板/video聊天
- 如何在另一个asynchronous`each`方法(NodeJS)内部进行asynchronous方法调用?
- 无法使用密钥对validationNode.js Crypto的签名
- 承诺链接error handling
- Nodejs + mongodb:如何查询$ ref字段?
- socket.io无法发出快速app.postcallback
- 为什么Javascript map函数String.toLowerCase在nodejs 6中不起作用?